class UIFrame extends UIElement {

	@Override
	public Object deepCopy() {
		final int attrSize = attributes != null ? attributes.size() : 0;
		final int childrenSize = children != null ? children.size() : 0;
		final UIFrame clone = new UIFrame(getName(), attrSize, childrenSize);
		clone.type = type;
		if (childrenSize > 0) {
			for (int i = 0; i < childrenSize; i++) {
				clone.children.add((UIElement) children.get(i).deepCopy());
			}
		}
		if (attrSize > 0) {
			for (int i = 0; i < attrSize; i++) {
				clone.attributes.add((UIAttribute) attributes.get(i).deepCopy());
			}
		}
		if (relative != DFLT_RELATIVE) {
			clone.relative = new String[4];
			System.arraycopy(relative, 0, clone.relative, 0, 4);
		}
		if (offset != DFLT_OFFSET) {
			clone.offset = new String[4];
			System.arraycopy(offset, 0, clone.offset, 0, 4);
		}
		if (pos != DFLT_POS) {
			clone.pos = new String[4];
			System.arraycopy(pos, 0, clone.pos, 0, 4);
		}
		return clone;
	}

	public  UIFrame();
	public  UIFrame(final String name, final String type);
	public  UIFrame(final String name, final int initialAttributesCapacity, final int initialChildrenCapacity);
	public  UIFrame(final String name);

}