/*
* Copyright 2013 Cloud4SOA, www.cloud4soa.eu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package eu.cloud4soa.api.datamodel.core.utilBeans;
import eu.cloud4soa.api.datamodel.core.annotations.SemanticRelation;
import eu.cloud4soa.api.datamodel.semantic.paas.Channel;
import eu.cloud4soa.api.datamodel.semantic.paas.Operation;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
/**
*
* @author vins
*/
@XmlRootElement()
@XmlType(name = "channelInstance")//, namespace="eu.cloud4soa.api.datamodel.core.utilBeans")
@XmlSeeAlso({APIInstance.class, CLIInstance.class, WebInterfaceInstance.class})
public abstract class ChannelInstance {
protected Channel channel;
public Channel getChannel() {
return channel;
}
public String getUriId(){
return channel.getUriId();
}
public void setUriId(String uriId){
channel.setUriId(uriId);
}
@SemanticRelation(semanticClass = Channel.class, methodName = "getTitle")
public String getTitle() {
return channel.geTitle();
}
public void setTitle(String title) {
channel.setTitle(title);
}
@SemanticRelation(semanticClass = Channel.class, methodName = "getDescription")
public String getDescription(){
return channel.getDescription();
}
public void setDescription(String description){
channel.setDescription(description);
}
@SemanticRelation(semanticClass = Channel.class, methodName = "getVersion")
public String getVersion(){
return channel.getVersion();
}
public void setVersion(String version){
channel.setVersion(version);
}
@SemanticRelation(semanticClass = Channel.class, methodName = "getSupportedOperations")
private List<Operation> getSupportedOperations(){
return channel.getSupportedOperations();
}
public OperationInstance createAndAddOperation(String title, String description, String command, String informationReturned){
OperationInstance operationInstance = new OperationInstance(title, description, command, informationReturned);
getSupportedOperations().add(operationInstance.getOperation());
return operationInstance;
}
public List<OperationInstance> getOperations() {
List<Operation> supportedOperations = getSupportedOperations();
List<OperationInstance> supportedOperationInstances = new ArrayList<OperationInstance>();
for (Operation operation : supportedOperations) {
supportedOperationInstances.add(new OperationInstance(operation));
}
return supportedOperationInstances;
}
public void setOperations(List<OperationInstance> supportedOperationInstances) {
for (OperationInstance operationInstance : supportedOperationInstances) {
getSupportedOperations().add(operationInstance.getOperation());
}
}
public boolean removeOperation(OperationInstance operationInstance){
return getSupportedOperations().remove(operationInstance.getOperation());
}
}