final ReferenceDescription ref = new ReferenceDescription(ad); if (ad instanceof FieldAnnotation) { fieldAnnotation = (FieldAnnotation) ad; ref.setField(fieldAnnotation.getAnnotatedField()); } else { fieldAnnotation = null; ref.setName(ad.getStringValue("name", (fieldAnnotation != null ? fieldAnnotation.getAnnotatedField().getName() : null))); String defaultInterfaceName = null; ref.setInterfaceName(ad.getStringValue("referenceInterface", defaultInterfaceName)); ref.setTarget(ad.getStringValue("target", null)); ref.setCardinality(ReferenceCardinality.valueOf(ad.getEnumValue("cardinality", ReferenceCardinality.MANDATORY_UNARY.name()))); ref.setPolicy(ReferencePolicy.valueOf(ad.getEnumValue("policy", ReferencePolicy.STATIC.name()))); ref.setPolicyOption(ReferencePolicyOption.valueOf(ad.getEnumValue("policyOption", ReferencePolicyOption.RELUCTANT.name()))); ref.setStrategy(ReferenceStrategy.valueOf(ad.getEnumValue("strategy", ReferenceStrategy.EVENT.name()))); ref.setBind(ad.getStringValue("bind", null)); ref.setUnbind(ad.getStringValue("unbind", null)); ref.setUpdated(ad.getStringValue("updated", null));
@Override public AbstractDescription clone() { final ReferenceDescription cd = new ReferenceDescription(this.annotation); cd.setName(this.getName()); cd.setInterfaceName(this.getInterfaceName()); cd.setTarget(this.getTarget()); cd.setCardinality(this.getCardinality()); cd.setPolicy(this.getPolicy()); cd.setPolicyOption(this.getPolicyOption()); cd.setStrategy(this.getStrategy()); cd.setField(this.getField()); cd.setBind(this.getBind()); cd.setUnbind(this.getUnbind()); cd.setUpdated(this.getUpdated()); cd.setBindMethodCreated(this.isBindMethodCreated()); cd.setUnbindMethodCreated(this.isUnbindMethodCreated()); return cd; } }
if (StringUtils.isEmpty(ref.getName())) { if (this.options.getSpecVersion().ordinal() < SpecVersion.VERSION_1_1.ordinal() ) { this.logError(ref, "Reference has no name"); if (StringUtils.isEmpty(ref.getInterfaceName())) { this.logError(ref, "Missing interface name"); } else { try { this.project.getClassLoader().loadClass(ref.getInterfaceName()); } catch (final ClassNotFoundException e) { this.logError(ref, "Interface class can't be loaded: " + ref.getInterfaceName()); if (ref.getCardinality() == null) { ref.setCardinality(ReferenceCardinality.MANDATORY_UNARY); if (ref.getPolicy() == null) { ref.setPolicy(ReferencePolicy.STATIC); if ( ref.getPolicyOption() == null ) { ref.setPolicyOption(ReferencePolicyOption.RELUCTANT); if ( ref.getPolicyOption() != ReferencePolicyOption.RELUCTANT ) { if ( this.options.getSpecVersion().ordinal() < SpecVersion.VERSION_1_2.ordinal() ) { this.logError(ref, "ReferencePolicyOption " + ref.getPolicyOption().name() + " requires spec version " + SpecVersion.VERSION_1_2.getName() + " or higher."); if (ref.getStrategy() == null) { ref.setStrategy(ReferenceStrategy.EVENT);
final ReferenceDescription ref = new ReferenceDescription(ad); describedClass.add(ref); ref.setStrategy(ReferenceStrategy.EVENT); ref.setBind(ad.getAnnotatedMethod().getName()); ref.setUnbind(unbind); this.hasMethod(describedClass, defaultUpdateMethodName) ? defaultUpdateMethodName : "-"); if ( !updated.equals("-") ) { ref.setUpdated(updated); ref.setName(ad.getStringValue("name", refNameByMethod)); ref.setInterfaceName(serviceName); } else { final Class<?>[] params = ad.getAnnotatedMethod().getParameterTypes(); if ( params != null && params.length > 0 ) { ref.setInterfaceName(params[0].getName()); ref.setCardinality(ReferenceCardinality.OPTIONAL_UNARY); } else if ( cardinality.equals("MULTIPLE") ) { ref.setCardinality(ReferenceCardinality.OPTIONAL_MULTIPLE); } else if ( cardinality.equals("AT_LEAST_ONE") ) { ref.setCardinality(ReferenceCardinality.MANDATORY_MULTIPLE); } else { ref.setCardinality(ReferenceCardinality.MANDATORY_UNARY);
final ReferenceDescription ref = new ReferenceDescription(null); ref.setName(attributes.getValue(ATTR_NAME)); ref.setInterfaceName(attributes.getValue(INTERFACE_ATTR_NAME)); final String cardinality = attributes.getValue(ATTR_CARDINALITY); if ( cardinality != null ) { ref.setCardinality(ReferenceCardinality.fromValue(cardinality)); if ( ref.getCardinality() == null ) { iLog.addWarning("Invalid value for attribute cardinality : " + cardinality, this.location); ref.setPolicy(ReferencePolicy.STATIC); final String policy = attributes.getValue(REFERENCE_ATTR_POLICY); if ( policy != null ) { try { ref.setPolicy(ReferencePolicy.valueOf(policy.toUpperCase())); } catch (final IllegalArgumentException iae) { iLog.addWarning("Invalid value for attribute policy : " + policy, this.location); ref.setPolicyOption(ReferencePolicyOption.RELUCTANT); final String policyOption = attributes.getValue(REFERENCE_ATTR_POLICY_OPTION); if ( policyOption != null ) { try { ref.setPolicyOption(ReferencePolicyOption.valueOf(policyOption.toUpperCase())); } catch (final IllegalArgumentException iae) { iLog.addWarning("Invalid value for attribute policy-option : " + policyOption, this.location); ref.setTarget(attributes.getValue(REFERENCE_ATTR_TARGET)); if ( attributes.getValue(REFERENCE_ATTR_BIND) != null ) { ref.setBind(attributes.getValue(REFERENCE_ATTR_BIND));