@Override
	public CMObject copyOf()
	{
		final WeakItemCollection c=(WeakItemCollection)newInstance();
		for(int i=0;i<contents.size();i++)
		{
			final Item I=contents.get(i);
			if(I!=null)
			{
				final Item I2=(Item)I.copyOf();
				I2.setOwner(I.owner());
				c.innerContents.add(new WeakReference<Item>(I2));
			}
		}
		for(int i=0;i<contents.size();i++)
		{
			final Item I=contents.get(i);
			final Item I2=c.contents.get(i);
			if((I!=null)&&(I2!=null))
			{
				if(I.container() != null)
					for(int i2=0;i2<contents.size();i2++)
						if(I.container() == contents.get(i2))
						{
							I2.setContainer((Container)c.contents.get(i2));
							break;
						}
			}
		}
		return c;
	}