@Override public NegotiatorDescriptor clone() { NegotiatorDescriptor clone = new NegotiatorDescriptor(); clone.setNegotiatorKlass(getNegotiatorClass()); clone.setOrder(getOrder()); Map<String, String> props = getProperties(); if (props != null) { clone.setProperties(new HashMap<String, String>(props)); } return clone; }
@Override public String negotiate(String target, Object context) { String res = null; NegotiationDescriptor negd = negReg.getNegotiation(target); if (negd != null) { List<NegotiatorDescriptor> nds = negd.getNegotiators(); for (NegotiatorDescriptor nd : nds) { Class<Negotiator> ndc = nd.getNegotiatorClass(); try { Negotiator neg = ndc.newInstance(); neg.setProperties(nd.getProperties()); res = neg.getResult(target, context); if (res != null) { break; } } catch (IllegalAccessException | InstantiationException e) { throw new RuntimeException(e); } } } return res; }
@Override public NegotiationDescriptor clone() { NegotiationDescriptor clone = new NegotiationDescriptor(); clone.setTarget(getTarget()); clone.setAppend(isAppend()); List<NegotiatorDescriptor> negotiators = this.negotiators; if (negotiators != null) { List<NegotiatorDescriptor> cnegociators = new ArrayList<NegotiatorDescriptor>(); for (NegotiatorDescriptor neg : negotiators) { cnegociators.add(neg.clone()); } clone.setNegotiators(cnegociators); } return clone; }