package com.flextrade.jfixture.builders; import com.flextrade.jfixture.NoSpecimen; import com.flextrade.jfixture.SpecimenBuilder; import com.flextrade.jfixture.SpecimenContext; import com.flextrade.jfixture.requests.KeyValueRequest; import com.flextrade.jfixture.utility.KeyValuePair; class KeyValuePairRelay implements SpecimenBuilder { @Override public Object create(Object request, SpecimenContext context) { if (!(request instanceof KeyValueRequest)) { return new NoSpecimen(); } KeyValueRequest kvRequest = (KeyValueRequest)request; Object keyResult = context.resolve(kvRequest.getKeyType()); if(keyResult instanceof NoSpecimen) return new NoSpecimen(); Object valueResult = context.resolve(kvRequest.getValueType()); if(valueResult instanceof NoSpecimen) return new NoSpecimen(); return new KeyValuePair(keyResult, valueResult); } }