@Override
	public ComplexTypeParameter copy() {

		ComplexTypeParameter copy = new ComplexTypeParameter();
		copy.setName(this.getName());
		copy.setValue(this.getValue());
		copy.setBaseType(this.getBaseType());
		copy.setRestrictions(this.getRestrictions());

		for (Attribute attr : attributes) {

			copy.addAttribute(attr.copy());
		}

		return copy;
	}