/** * Constructor for the <code>CacheLabel</code> object. This is used to create a <code>Label</code> * that acquires details from another label in such a way that any logic involved in acquiring * details is performed only once. * * @param label this is the label to acquire the details from */ public CacheLabel(Label label) throws Exception { this.annotation = label.getAnnotation(); this.decorator = label.getDecorator(); this.attribute = label.isAttribute(); this.collection = label.isCollection(); this.contact = label.getContact(); this.depend = label.getDependent(); this.required = label.isRequired(); this.override = label.getOverride(); this.inline = label.isInline(); this.path = label.getPath(); this.type = label.getType(); this.name = label.getName(); this.entry = label.getEntry(); this.data = label.isData(); this.label = label; }
/** * This is used to acquire the <code>Type</code> that the type provided is represented by. * Typically this will return the field or method represented by the label. However, in the case * of unions this will provide an override type. * * @param type this is the class to acquire the type for * @return this returns the type represented by this class */ public Type getType(Class type) throws Exception { return label.getType(type); }