}
public JavaInterfaceContract read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
// Read an <interface.java>
JavaInterfaceContract javaInterfaceContract = javaFactory.createJavaInterfaceContract();
String interfaceName = reader.getAttributeValue(null, INTERFACE);
if (interfaceName != null) {
JavaInterface javaInterface = createJavaInterface(interfaceName);
javaInterfaceContract.setInterface(javaInterface);
}
String callbackInterfaceName = reader.getAttributeValue(null, CALLBACK_INTERFACE);
if (callbackInterfaceName != null) {
JavaInterface javaCallbackInterface = createJavaInterface(callbackInterfaceName);
javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
}
String remotable = reader.getAttributeValue(null, REMOTABLE);
if (remotable != null) {
javaInterfaceContract.getInterface().setRemotable(Boolean.parseBoolean(remotable));
}
// Read intents and policy sets
policyProcessor.readPolicies(javaInterfaceContract.getInterface(), reader);
// Skip to end element
while (reader.hasNext()) {
if (reader.next() == END_ELEMENT && INTERFACE_JAVA_QNAME.equals(reader.getName())) {
break;