package org.fireflow.model.servicedef.impl;
import java.util.ArrayList;
import java.util.List;
import org.fireflow.model.data.Input;
import org.fireflow.model.data.Output;
import org.fireflow.model.servicedef.InterfaceDef;
import org.fireflow.model.servicedef.OperationDef;
public abstract class AbstractInterfaceDef implements InterfaceDef {
// protected String namespaceUri = null;//通过ServiceDef.TargetNamespaceUri表达,2012-03-01
protected String name = null;
// public String getNamespaceUri(){
// return namespaceUri;
// }
//
// public void setNamespaceUri(String uri){
// this.namespaceUri = uri;
// }
protected boolean resolved = false;
public boolean isResolved() {
return resolved;
}
public void setResolved(boolean resolved) {
this.resolved = resolved;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
protected List<OperationDef> operationsList = new ArrayList<OperationDef>();
public OperationDef getOperation(String opName) {
for (OperationDef op : operationsList){
if (op.getOperationName()!=null && op.getOperationName().equals(opName)){
return op;
}
}
return null;
}
// public void setOperation(Operation operation) {
// operationsList.add(operation);
//
// }
public List<OperationDef> getOperations() {
return operationsList;
}
public List<OperationDef> getOperations(String opName) {
List<OperationDef> tmp = new ArrayList<OperationDef>();
for (OperationDef op : operationsList){
if (op.getOperationName().equals(opName)){
tmp.add(op);
}
}
return tmp;
}
public String toString(){
StringBuffer sbuf = new StringBuffer();
sbuf.append("Interface ").append(this.getName()).append("[\n");
List<OperationDef> oprationList = this.getOperations();
for (OperationDef op : oprationList){
sbuf.append("\t");
List<Output> outputList = op.getOutputs();
for (int i=0;i<outputList.size();i++){
Output output = outputList.get(i);
sbuf.append(output.getDataType());
if (i<outputList.size()-1){
sbuf.append(",");
}else{
sbuf.append(" ");
}
}
sbuf.append(op.getOperationName()).append("(");
List<Input> inputList = op.getInputs();
for (int i=0;i<inputList.size();i++){
Input input = inputList.get(i);
sbuf.append(input.getDataType());
sbuf.append(" ").append(input.getName());
if (i<inputList.size()-1){
sbuf.append(",\n\t\t");
}
}
sbuf.append(")\n");
}
sbuf.append("]");
return sbuf.toString();
}
}