private Target parseTarget(String target) { String[] tokens = target.split("/"); if (tokens.length == 1) { return new Target(tokens[0]); } else if (tokens.length == 2) { return new Target(tokens[0], tokens[1]); } else if (tokens.length == 3) { return new Target(tokens[0], tokens[1], tokens[2]); } else { throw new IllegalArgumentException("Invalid target format: " + target); } } }
private org.fabric3.api.model.type.component.Target parseTarget(String target, Annotation annotation, AccessibleObject accessibleObject, Member member, IntrospectionContext context) { String[] tokens = target.split("/"); if (tokens.length == 1) { return new org.fabric3.api.model.type.component.Target(tokens[0]); } else if (tokens.length == 2) { return new org.fabric3.api.model.type.component.Target(tokens[0], tokens[1]); } else if (tokens.length == 3) { return new org.fabric3.api.model.type.component.Target(tokens[0], tokens[1], tokens[2]); } else { Class<?> clazz = member.getDeclaringClass(); String name = member.getName(); InvalidAnnotation error = new InvalidAnnotation("Invalid target format: " + target + " on " + name, accessibleObject, annotation, clazz); context.addError(error); return null; } } }
/** * Adds a reference with the given name and target. * * @param name the reference name * @param target the target */ public T reference(String name, String target) { checkState(); Component<?> definition = getComponent(); Reference<Component> reference = new Reference<>(name, Multiplicity.ONE_ONE); reference.addTarget(new Target(target)); definition.add(reference); return builder(); }
/** * Adds a reference with the given name and target. * * @param name the reference name * @param target the target */ public T reference(String name, String target, boolean required) { checkState(); Component<?> definition = getComponent(); Multiplicity multiplicity = required ? Multiplicity.ONE_ONE : Multiplicity.ZERO_ONE; Reference<Component> reference = new Reference<>(name, multiplicity); reference.addTarget(new Target(target)); definition.add(reference); return builder(); }
/** * Adds a reference with the given name and target. * * @param name the reference name * @param target the target * @param multiplicity the multiplicity */ public T reference(String name, String target, Multiplicity multiplicity) { checkState(); Component<?> definition = getComponent(); Reference<Component> reference = new Reference<>(name, multiplicity); reference.addTarget(new Target(target)); definition.add(reference); return builder(); }