public InterfaceContract read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
TuscanyInterfaceContractImpl interfaceContract = new TuscanyInterfaceContractImpl();
try {
InterfaceImpl iface = null;
QName name = null;
Operation operation = null;
List<DataType> inputs = null;
List<DataType> outputs = null;
List<DataType> faults = null;
XMLType logicalXMLType = null;
Iof iof = Iof.UNSET;
CharacterTarget characterTarget = CharacterTarget.UNSET;
boolean logicalCollection = false;
DataType dataType = null;
while (reader.hasNext()) {
int event = reader.getEventType();
switch (event) {
case START_ELEMENT:
name = reader.getName();
if (INTERFACE_CONTRACT_QNAME.equals(name)){
} else if (INTERFACE_QNAME.equals(name)){
iface = new InterfaceImpl();
interfaceContract.setInterface(iface);
iface.setRemotable(getBoolean(reader, "isRemotable"));
} else if (CALLBACK_INTERFACE_QNAME.equals(name)){
iface = new InterfaceImpl();
interfaceContract.setCallbackInterface(iface);
iface.setRemotable(getBoolean(reader, "isRemotable"));
} else if (OPERATION_QNAME.equals(name)) {
operation = new OperationImpl();
iface.getOperations().add(operation);
operation.setName(getString(reader, "name"));
operation.setDynamic(getBoolean(reader, "isDynamic"));
operation.setNonBlocking(getBoolean(reader, "isNonBlocking"));
operation.setInputWrapperStyle(getBoolean(reader, "isInputWrapperStyle"));