00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030  
00031 package org.objectweb.proactive.core.component;
00032 
00033 import java.io.Serializable;
00034 import java.util.Map;
00035 
00036 import org.objectweb.proactive.core.component.Constants;
00037 import org.objectweb.proactive.core.component.identity.ProActiveComponentImpl;
00038 
00039 
00058 public class ControllerDescription implements Serializable {
00059     private String hierarchicalType;
00060     private String name;
00061     private boolean synchronous = false;
00062     public static final String DEFAULT_COMPONENT_CONFIG_FILE_LOCATION = "/org/objectweb/proactive/core/component/config/default-component-config.xml";
00063     private String controllersConfigFileLocation;
00064     private Map controllersSignatures;
00065 
00070     public ControllerDescription() {
00071         this((String) null, (String) null, (String) null, false);
00072     }
00073 
00079     public ControllerDescription(String name, String hierarchicalType) {
00080         this(name, hierarchicalType, null, false);
00081     }
00082 
00089     public ControllerDescription(String name, String hierarchicalType,
00090         boolean synchronous) {
00091         this(name, hierarchicalType, null, synchronous);
00092     }
00093 
00100     public ControllerDescription(String name, String hierarchicalType,
00101         String controllersConfigFileLocation) {
00102         this(name, hierarchicalType, controllersConfigFileLocation, false);
00103     }
00104 
00112     public ControllerDescription(String name, String hierarchicalType,
00113         String controllersConfigFileLocation,
00114         String interceptorsConfigFileLocation) {
00115         this(name, hierarchicalType, controllersConfigFileLocation, false);
00116     }
00117 
00125     public ControllerDescription(String name, String hierarchicalType,
00126         String controllersConfigFileLocation, boolean synchronous) {
00127         this.hierarchicalType = hierarchicalType;
00128         this.name = name;
00129         if (!Constants.PRIMITIVE.equals(hierarchicalType)) {
00130             this.synchronous = synchronous;
00131         }
00132         if (controllersConfigFileLocation == null) {
00133             this.controllersConfigFileLocation = DEFAULT_COMPONENT_CONFIG_FILE_LOCATION;
00134         } else {
00135             this.controllersConfigFileLocation = controllersConfigFileLocation;
00136         }
00137         controllersSignatures = ProActiveComponentImpl.loadControllerConfiguration(this.controllersConfigFileLocation).getControllers();
00138     }
00139 
00144     public ControllerDescription(ControllerDescription controllerDesc) {
00145         this(controllerDesc.name, controllerDesc.hierarchicalType, controllerDesc.controllersConfigFileLocation, controllerDesc.synchronous);
00146     }
00147 
00152     public String getHierarchicalType() {
00153         return hierarchicalType;
00154     }
00155 
00160     public void setHierarchicalType(String string) {
00161         hierarchicalType = string;
00162     }
00163 
00168     public String getName() {
00169         return name;
00170     }
00171 
00176     public void setName(String name) {
00177         this.name = name;
00178     }
00179 
00184     public boolean isSynchronous() {
00185         return synchronous;
00186     }
00187 
00192     public String getControllersConfigFileLocation() {
00193         return controllersConfigFileLocation;
00194     }
00195     
00196     public Map getControllersSignatures() {
00197         return controllersSignatures;
00198     }
00199 }