Changeset 287 for tools

Show
Ignore:
Timestamp:
04/02/09 18:14:56 (12 months ago)
Author:
anton
Message:

State before some cardinal code changes.

Location:
tools/routingservice/branches/wrs-2.0
Files:
18 added
9 modified

Legend:

Unmodified
Added
Removed
  • tools/routingservice/branches/wrs-2.0/data/templates.xml

    r285 r287  
     1<?xml version="1.0"?> 
     2<templates 
     3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     4xsi:noNamespaceSchemaLocation="http://wrs.postlbs.org/xsd/1.1.0/template.xsd" 
     5> 
     6<template name="gml" format="xml" url="./data/templates/route/route_gml.st"> 
     7        <services> 
     8                <sref ref="route" enable="true"/> 
     9        </services> 
     10</template> 
     11</templates> 
  • tools/routingservice/branches/wrs-2.0/src/WRS.java

    r286 r287  
    11import java.io.IOException; 
     2import java.util.ArrayList; 
    23import java.util.Enumeration; 
    34import java.util.Hashtable; 
     5import java.util.Iterator; 
    46import java.util.ListIterator; 
     7import java.util.Vector; 
    58 
    69import javax.xml.bind.JAXBException; 
     
    1215import model.Template; 
    1316 
     17import org.restlet.Component; 
     18import org.restlet.Restlet; 
    1419import org.xml.sax.SAXException; 
    1520 
     
    1722import util.Log; 
    1823import util.Parameter; 
     24import util.ServiceRequest; 
     25import util.URLHelper; 
    1926import util.conf.Configuration; 
    2027import util.conf.Configuration.Includes.Include; 
     
    2229import util.profile.Profiles.Profile.Resources.Rref; 
    2330import util.resource.Resources; 
     31import util.resource.Resources.Resource.Services; 
     32import util.Sref; 
     33 
     34import org.restlet.data.Form; 
     35import org.restlet.data.MediaType; 
     36import org.restlet.data.Method; 
     37import org.restlet.data.Protocol; 
     38import org.restlet.data.Request; 
     39import org.restlet.data.Response; 
     40import org.restlet.data.Status; 
     41 
     42import exception.InvalidProfileException; 
     43import exception.InvalidServiceException; 
     44import exception.InvalidTemplateException; 
     45import exception.InvalidVersionException; 
    2446 
    2547public class WRS 
     
    3355        private Hashtable<String, Resource> resources; 
    3456 
     57        private static final String DEFAULT_VERSION = "1.1.0"; 
     58 
    3559        public enum Includes 
    3660        { 
     
    3862        } 
    3963 
    40         public WRS(String[] args) 
     64        public WRS(String[] args) throws Exception 
    4165        { 
    4266                if (!checkParams(args)) 
     
    4771                } 
    4872 
    49                 this.resources = new Hashtable(); 
     73                this.resources = new Hashtable<String, Resource>(); 
     74                this.services = new Hashtable<String, Service>(); 
     75                this.profiles = new Hashtable<String, Profile>(); 
     76                this.templates = new Hashtable<String, Template>(); 
    5077 
    5178                this.conf = readConfig(args[0]); 
     
    6087                                .getLevel().byteValue()); 
    6188                log.logger.info("Hello world!"); 
     89 
     90                Component component = new Component(); 
     91 
     92                log.logger.finest("Starting service at port " + this.conf.getPort()); 
     93                component.getServers().add(Protocol.HTTP, this.conf.getPort()); 
     94 
     95                Restlet restlet = new Restlet() 
     96                { 
     97 
     98                        synchronized public void handle(Request request, Response response) 
     99                        { 
     100                                log.logger.info("Handle request"); 
     101                                ServiceRequest serviceRequest = null; 
     102                                String result = ""; 
     103                                 
     104                                try 
     105                                { 
     106                                        serviceRequest = parseURL(request); 
     107 
     108                                        if (serviceRequest == null) 
     109                                                throw new ArrayIndexOutOfBoundsException(); 
     110 
     111                                        Resource resource = findResource(serviceRequest); 
     112 
     113                                        if (resource == null) 
     114                                        { 
     115                                                // TODO process this case carefully 
     116                                        } 
     117                                        else 
     118                                        { 
     119                                                result = resource.processRequest(serviceRequest); 
     120                                        } 
     121                                         
     122                                } 
     123                                catch (InvalidVersionException e) 
     124                                { 
     125                                        log.logger.warning("Invalid version '" + e.getVersion() 
     126                                                        + "'. Reqest can't be processed."); 
     127                                        response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 
     128                                } 
     129                                catch (InvalidProfileException e) 
     130                                { 
     131                                        log.logger.warning("Invalid profile '" + e.getProfileName() 
     132                                                        + "'. Reqest can't be processed."); 
     133                                        response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 
     134                                } 
     135                                catch (InvalidServiceException e) 
     136                                { 
     137                                        log.logger.warning("Invalid service '" + e.getServiceName() 
     138                                                        + "'. Reqest can't be processed."); 
     139                                        response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 
     140                                } 
     141                                catch (InvalidTemplateException e) 
     142                                { 
     143                                        log.logger.warning("Invalid format '" + e.getTemplateName() 
     144                                                        + "'. Reqest can't be processed."); 
     145                                        response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 
     146                                } 
     147                                catch (ArrayIndexOutOfBoundsException e) 
     148                                { 
     149                                        log.logger 
     150                                                        .warning("Invalid URL. Reqest can't be processed."); 
     151                                        response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 
     152                                } 
     153 
     154                                response.setEntity(result, MediaType.TEXT_ALL); 
     155                        } 
     156                }; 
     157                component.getDefaultHost().attach("/", restlet); 
     158                component.start(); 
     159 
     160        } 
     161 
     162        public ServiceRequest parseURL(Request req) 
     163                        throws ArrayIndexOutOfBoundsException, InvalidVersionException, 
     164                        InvalidProfileException, InvalidServiceException, 
     165                        InvalidTemplateException 
     166        { 
     167                String url = req.getResourceRef().getRemainingPart().split("\\?")[0]; 
     168                // http://<servicedomain>:<port>/<version>/<profile>/<service>.<format>?<input>={<data>} 
     169                String urlSplit[] = url.split("/"); 
     170 
     171                byte urlIndex = 0; 
     172                String cVersion = urlSplit[urlIndex]; 
     173 
     174                if (!this.conf.getVersion().equals(cVersion)) 
     175                { 
     176                        throw new InvalidVersionException(cVersion); 
     177                } 
     178 
     179                // Next token (assumed to be profile name) 
     180                ++urlIndex; 
     181 
     182                String pName = urlSplit[urlIndex]; 
     183                Profile cProfile = this.profiles.get(pName); 
     184 
     185                if (cProfile == null) 
     186                { 
     187                        throw new InvalidProfileException(pName); 
     188                } 
     189 
     190                // Next token (assumed to be service.format) 
     191                ++urlIndex; 
     192 
     193                String sName = urlSplit[urlIndex].split("\\.")[0]; 
     194                ArrayList csList = (ArrayList) cProfile.getServices().get(sName); 
     195                // TODO implement a rule 
     196                Service cService = (Service) csList.get(0); 
     197 
     198                if (cService == null) 
     199                { 
     200                        throw new InvalidServiceException(sName); 
     201                } 
     202 
     203                String tName = urlSplit[urlIndex].split("\\.")[1].split("\\?")[0]; 
     204                Template cTemplate = this.templates.get(tName); 
     205 
     206                if (cTemplate == null) 
     207                { 
     208                        throw new InvalidTemplateException(tName); 
     209                } 
     210 
     211                ServiceRequest request = new ServiceRequest(cProfile, cService, 
     212                                cTemplate); 
     213                // TODO parse and pass parameters 
     214 
     215                Form form = new Form(); 
     216                // GET Request 
     217                if (req.getMethod() == Method.GET) 
     218                { 
     219                        String paramString; 
     220                        try 
     221                        { 
     222                                paramString = req.getResourceRef().getRemainingPart().split( 
     223                                                "\\?")[1]; 
     224                                form = new Form(paramString); 
     225                        } 
     226                        catch (ArrayIndexOutOfBoundsException e) 
     227                        { 
     228                                // No parameters. It might happen. Do nothing. 
     229                        } 
     230                } 
     231                // POST Request 
     232                else if (req.getMethod() == Method.POST) 
     233                { 
     234                        form = req.getEntityAsForm(); 
     235                } 
     236                else 
     237                { 
     238                        log.logger.finest("Method " + req.getMethod() 
     239                                        + " is not supported yet."); 
     240                        return null; 
     241                } 
     242 
     243                Vector<Parameter> parameters = new Vector<Parameter>(); 
     244                Iterator<String> ni = form.getNames().iterator(); 
     245                while (ni.hasNext()) 
     246                { 
     247                        String name = ni.next(); 
     248                        String value = form.getValuesMap().get(name); 
     249                        Parameter param = new Parameter(); 
     250                        param.setName(name); 
     251                        param.setKey(name); 
     252                        param.setValue(value); 
     253                        parameters.add(param); 
     254                } 
     255 
     256                return request; 
    62257        } 
    63258 
    64259        public static void main(String[] args) 
    65260        { 
    66                 new WRS(args); 
     261                try 
     262                { 
     263                        new WRS(args); 
     264                } 
     265                catch (Exception e) 
     266                { 
     267                        System.out.println("Error: Can't start the service."); 
     268                        e.printStackTrace(); 
     269                } 
    67270        } 
    68271 
     
    144347                                } 
    145348 
     349                                ListIterator<Sref> si = res.getServices().getSref() 
     350                                                .listIterator(); 
     351                                while (si.hasNext()) 
     352                                { 
     353                                        Sref sref = si.next(); 
     354                                        Service service = this.services.get(sref.getRef()); 
     355                                        if (service != null) 
     356                                        { 
     357                                                resource.getServices().put(service.getName(), service); 
     358                                        } 
     359                                        else 
     360                                        { 
     361                                                System.out.println("No such service: " + sref.getRef()); 
     362                                        } 
     363                                } 
     364 
    146365                                this.resources.put(resource.getName(), resource); 
    147366                        } 
     
    199418                                                        } 
    200419 
     420                                                        Enumeration<String> si = res.getServices().keys(); 
     421                                                        while (si.hasMoreElements()) 
     422                                                        { 
     423                                                                String sk = si.nextElement(); 
     424                                                                profile.getServices().put(sk, 
     425                                                                                res.getServices().get(sk)); 
     426 
     427                                                        } 
     428 
    201429                                                        profile.getResources().put(res.getName(), res); 
    202430                                                } 
     
    224452                                        profile.getParameters().put(p.getName(), p); 
    225453                                } 
     454 
     455                                this.profiles.put(profile.getName(), profile); 
     456 
    226457                        } 
    227458                } 
     
    230461                        System.out.println("Wrong profiles configuration file."); 
    231462                } 
     463                catch (NullPointerException e) 
     464                { 
     465                        System.out.println("Wrong profiles configuration file."); 
     466                } 
    232467                catch (IOException e) 
    233468                { 
     
    247482        private void readTemplates(String url) 
    248483        { 
    249                 System.out.println("Read templates from " + url + " file."); 
    250  
     484                try 
     485                { 
     486                        System.out.println("Read templates from " + url + " file."); 
     487 
     488                        util.template.Templates templates = IOHelper.readConfig( 
     489                                        util.template.Templates.class, url); 
     490                        ListIterator<util.template.Templates.Template> li = templates 
     491                                        .getTemplate().listIterator(); 
     492 
     493                        while (li.hasNext()) 
     494                        { 
     495                                util.template.Templates.Template temp = li.next(); 
     496                                Template template = new Template(temp.getName(), temp 
     497                                                .getFormat()); 
     498 
     499                                ListIterator<Sref> si = temp.getServices().getSref() 
     500                                                .listIterator(); 
     501                                while (si.hasNext()) 
     502                                { 
     503                                        Sref sref = si.next(); 
     504                                        Service service = this.services.get(sref.getRef()); 
     505                                        if (service != null) 
     506                                        { 
     507                                                template.getServices().put(service.getName(), service); 
     508                                        } 
     509                                        else 
     510                                        { 
     511                                                System.out.println("No such service: " + sref.getRef()); 
     512                                        } 
     513                                } 
     514 
     515                                String body = IOHelper.readFile(temp.getUrl()); 
     516                                template.setBody(body); 
     517 
     518                                this.templates.put(template.getName(), template); 
     519                        } 
     520                } 
     521                catch (SAXException e) 
     522                { 
     523                        System.out.println("Wrong templates configuration file."); 
     524                } 
     525                catch (NullPointerException e) 
     526                { 
     527                        System.out.println("Wrong templates configuration file."); 
     528                } 
     529                catch (IOException e) 
     530                { 
     531                        System.out.println("Can't open profiles configuration file."); 
     532                } 
     533                catch (ParserConfigurationException e) 
     534                { 
     535                        System.out.println("Wrong templates configuration file."); 
     536                } 
     537                catch (JAXBException e) 
     538                { 
     539                        System.out.println("Wrong templates configuration file."); 
     540                } 
    251541        } 
    252542 
    253543        private void readServices(String url) 
    254544        { 
    255                 System.out.println("Read services from " + url + " file."); 
    256         } 
    257  
    258         public boolean checkParams(String args[]) 
     545                try 
     546                { 
     547                        System.out.println("Read services from " + url + " file."); 
     548                        util.service.Services services = IOHelper.readConfig( 
     549                                        util.service.Services.class, url); 
     550                        ListIterator<util.service.Services.Service> li = services 
     551                                        .getService().listIterator(); 
     552 
     553                        while (li.hasNext()) 
     554                        { 
     555                                util.service.Services.Service serv = li.next(); 
     556                                Service service = new Service(serv.getName()); 
     557 
     558                                ListIterator<Parameter> inpi = serv.getIn().getParameter() 
     559                                                .listIterator(); 
     560                                while (inpi.hasNext()) 
     561                                { 
     562                                        Parameter param = inpi.next(); 
     563                                        service.getIn().put(param.getName(), param); 
     564                                } 
     565                                ListIterator<Parameter> outpi = serv.getOut().getParameter() 
     566                                                .listIterator(); 
     567                                while (outpi.hasNext()) 
     568                                { 
     569                                        Parameter param = outpi.next(); 
     570                                        service.getIn().put(param.getName(), param); 
     571                                } 
     572 
     573                                this.services.put(service.getName(), service); 
     574                        } 
     575                } 
     576                catch (SAXException e) 
     577                { 
     578                        System.out.println("Wrong services configuration file."); 
     579                } 
     580                catch (NullPointerException e) 
     581                { 
     582                        System.out.println("Wrong services configuration file."); 
     583                } 
     584                catch (IOException e) 
     585                { 
     586                        System.out.println("Can't open services configuration file."); 
     587                } 
     588                catch (ParserConfigurationException e) 
     589                { 
     590                        System.out.println("Wrong services configuration file."); 
     591                } 
     592                catch (JAXBException e) 
     593                { 
     594                        System.out.println("Wrong services configuration file."); 
     595                } 
     596        } 
     597 
     598        private boolean checkParams(String args[]) 
    259599        { 
    260600                boolean isOk = false; 
     
    264604        } 
    265605 
     606        private Resource findResource(ServiceRequest serviceRequest) 
     607        { 
     608                Resource resource = null; 
     609 
     610                Enumeration resKeys = serviceRequest.getProfile().getResources().keys(); 
     611                while (resKeys.hasMoreElements()) 
     612                { 
     613                        Resource res = serviceRequest.getProfile().getResources().get( 
     614                                        resKeys.nextElement()); 
     615 
     616                        // TODO There could be more sophisticated rule for choosing a 
     617                        // resource 
     618                        if (res.getServices().containsKey( 
     619                                        serviceRequest.getService().getName())) 
     620                        { 
     621                                resource = res; 
     622                                break; 
     623                        } 
     624                } 
     625 
     626                return resource; 
     627        } 
     628 
    266629} 
  • tools/routingservice/branches/wrs-2.0/src/model/Profile.java

    r286 r287  
    1414        private MultiValueMap parameters; 
    1515        private Hashtable<String, Resource> resources; 
    16         private Hashtable<String, Service> services;     
     16        private MultiValueMap services;  
    1717 
    1818        public Profile(String name) 
     
    2121                this.name = name; 
    2222                 
    23                 HashMap<String, Parameter> hm = new HashMap<String, Parameter>(); 
    24                 parameters = MultiValueMap.decorate(hm); 
     23                HashMap<String, Parameter> pm = new HashMap<String, Parameter>(); 
     24                parameters = MultiValueMap.decorate(pm); 
     25                 
     26                HashMap<String, Service> sm = new HashMap<String, Service>(); 
     27                services = MultiValueMap.decorate(sm);           
    2528                 
    2629                //parameters = new MultiValueMap(); 
    2730                resources = new Hashtable<String, Resource>(); 
    28                 services = new Hashtable<String, Service>(); 
    2931 
    3032        } 
     
    5557        } 
    5658 
    57  
    5859        public Hashtable<String, Resource> getResources() 
    5960        { 
     
    6162        } 
    6263 
    63         public void setResources(Hashtable<String, Resource> resources) 
     64        public MultiValueMap getServices() 
    6465        { 
    65                 this.resources = resources; 
     66                return services; 
    6667        } 
    6768 
  • tools/routingservice/branches/wrs-2.0/src/model/Resource.java

    r286 r287  
    11package model; 
     2 
     3import handler.ResourceHandler; 
    24 
    35import java.util.Hashtable; 
    46 
    57import util.Parameter; 
     8import util.ServiceRequest; 
    69 
    710public class Resource 
     
    1922        private Hashtable<String, Parameter> parameters; 
    2023        private Hashtable<String, Service> services; 
     24         
     25        private ResourceHandler handler; 
    2126 
    2227        public Resource(String name, String type) 
     
    115120        } 
    116121 
     122        public String processRequest(ServiceRequest serviceRequest) 
     123        { 
     124                // TODO Auto-generated method stub 
     125                return null; 
     126        } 
     127 
    117128} 
  • tools/routingservice/branches/wrs-2.0/src/model/Service.java

    r285 r287  
    11package model; 
     2 
     3import java.util.Hashtable; 
     4 
     5import util.Parameter; 
    26 
    37public class Service 
    48{ 
     9        private String name; 
     10        private String title; 
     11        private String description; 
     12 
     13        private Hashtable<String, Parameter> in; 
     14        private Hashtable<String, Parameter> out; 
     15         
     16         
     17 
     18        public Service(String name) 
     19        { 
     20                super(); 
     21                this.name = name; 
     22                this.in = new Hashtable<String, Parameter>(); 
     23                this.out = new Hashtable<String, Parameter>(); 
     24        } 
     25 
     26        public String getName() 
     27        { 
     28                return name; 
     29        } 
     30 
     31        public void setName(String name) 
     32        { 
     33                this.name = name; 
     34        } 
     35 
     36        public String getTitle() 
     37        { 
     38                return title; 
     39        } 
     40 
     41        public void setTitle(String title) 
     42        { 
     43                this.title = title; 
     44        } 
     45 
     46        public String getDescription() 
     47        { 
     48                return description; 
     49        } 
     50 
     51        public void setDescription(String description) 
     52        { 
     53                this.description = description; 
     54        } 
     55 
     56        public Hashtable<String, Parameter> getIn() 
     57        { 
     58                return in; 
     59        } 
     60 
     61        public Hashtable<String, Parameter> getOut() 
     62        { 
     63                return out; 
     64        } 
    565 
    666} 
  • tools/routingservice/branches/wrs-2.0/src/model/Template.java

    r285 r287  
    11package model; 
     2 
     3import java.util.Hashtable; 
    24 
    35public class Template 
    46{ 
     7        private String body; 
     8        private String name; 
     9        private String format; 
     10        private Hashtable<String, Service> services; 
     11 
     12        public Template(String name, String format) 
     13        { 
     14                super(); 
     15                this.name = name; 
     16                this.format = format; 
     17                this.services = new Hashtable<String, Service>(); 
     18        } 
     19 
     20        public String getBody() 
     21        { 
     22                return body; 
     23        } 
     24 
     25        public void setBody(String body) 
     26        { 
     27                this.body = body; 
     28        } 
     29 
     30        public String getName() 
     31        { 
     32                return name; 
     33        } 
     34 
     35        public String getFormat() 
     36        { 
     37                return format; 
     38        } 
     39 
     40        public Hashtable<String, Service> getServices() 
     41        { 
     42                return services; 
     43        } 
    544 
    645} 
  • tools/routingservice/branches/wrs-2.0/src/util/IOHelper.java

    r285 r287  
    11package util; 
    22 
     3import java.io.BufferedReader; 
    34import java.io.File; 
     5import java.io.FileReader; 
    46import java.io.IOException; 
    57 
     
    2628 
    2729        public static <T> T readConfig(Class<T> docClass, String fileName) 
    28                         throws SAXException, IOException, ParserConfigurationException, JAXBException 
     30                        throws SAXException, IOException, ParserConfigurationException, 
     31                        JAXBException 
    2932        { 
    3033                T conf = null; 
     
    3942                        // normalize text representation 
    4043                        doc.getDocumentElement().normalize(); 
    41                          
    42                         JAXBContext jaxbContext = JAXBContext.newInstance(docClass.getPackage().getName()); 
     44 
     45                        JAXBContext jaxbContext = JAXBContext.newInstance(docClass 
     46                                        .getPackage().getName()); 
    4347                        Unmarshaller u = jaxbContext.createUnmarshaller(); 
    44                         conf = (T)u.unmarshal(new File(fileName)); 
    45                          
     48                        conf = (T) u.unmarshal(new File(fileName)); 
     49 
    4650                } 
    4751 
    4852                return conf; 
     53        } 
     54 
     55        public static String readFile(String url) throws IOException 
     56        { 
     57                StringBuffer fileData = new StringBuffer(1000); 
     58                BufferedReader reader = new BufferedReader(new FileReader(url)); 
     59                char[] buf = new char[1024]; 
     60                int numRead = 0; 
     61                while ((numRead = reader.read(buf)) != -1) 
     62                { 
     63                        fileData.append(buf, 0, numRead); 
     64                } 
     65                reader.close(); 
     66                return fileData.toString(); 
     67 
    4968        } 
    5069 
  • tools/routingservice/branches/wrs-2.0/src/util/resource/ObjectFactory.java

    r286 r287  
    1212 
    1313import util.Parameter; 
     14import util.Sref; 
    1415 
    1516 
     
    5152     *  
    5253     */ 
    53     public Resources.Resource.Services.Sref createResourcesResourceServicesSref() { 
    54         return new Resources.Resource.Services.Sref(); 
     54    public Sref createResourcesResourceServicesSref() { 
     55        return new Sref(); 
    5556    } 
    5657 
  • tools/routingservice/branches/wrs-2.0/src/util/resource/Resources.java

    r286 r287  
    55// Generated on: 2009.03.26 at 01:00:53 PM JST  
    66// 
    7  
    87 
    98package util.resource; 
     
    1918 
    2019import util.Parameter; 
    21  
     20import util.Sref; 
    2221 
    2322/** 
    24  * <p>Java class for anonymous complex type. 
     23 * <p> 
     24 * Java class for anonymous complex type. 
    2525 *  
    26  * <p>The following schema fragment specifies the expected content contained within this class. 
     26 * <p> 
     27 * The following schema fragment specifies the expected content contained within 
     28 * this class. 
    2729 *  
    2830 * <pre> 
    29  * &lt;complexType> 
    30  *   &lt;complexContent> 
    31  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    32  *       &lt;sequence> 
    33  *         &lt;element name="resource" maxOccurs="unbounded"> 
    34  *           &lt;complexType> 
    35  *             &lt;complexContent> 
    36  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    37  *                 &lt;sequence> 
    38  *                   &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    39  *                   &lt;element name="parameters"> 
    40  *                     &lt;complexType> 
    41  *                       &lt;complexContent> 
    42  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    43  *                           &lt;sequence> 
    44  *                             &lt;element ref="{}parameter" maxOccurs="unbounded"/> 
    45  *                           &lt;/sequence> 
    46  *                         &lt;/restriction> 
    47  *                       &lt;/complexContent> 
    48  *                     &lt;/complexType> 
    49  *                   &lt;/element> 
    50  *                   &lt;element name="services"> 
    51  *                     &lt;complexType> 
    52  *                       &lt;complexContent> 
    53  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    54  *                           &lt;sequence> 
    55  *                             &lt;element name="sref" maxOccurs="unbounded"> 
    56  *                               &lt;complexType> 
    57  *                                 &lt;complexContent> 
    58  *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    59  *                                     &lt;attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    60  *                                     &lt;attribute name="enabled" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    61  *                                   &lt;/restriction> 
    62  *                                 &lt;/complexContent> 
    63  *                               &lt;/complexType> 
    64  *                             &lt;/element> 
    65  *                           &lt;/sequence> 
    66  *                         &lt;/restriction> 
    67  *                       &lt;/complexContent> 
    68  *                     &lt;/complexType> 
    69  *                   &lt;/element> 
    70  *                   &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    71  *                   &lt;element name="user" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    72  *                   &lt;element name="password" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    73  *                   &lt;element name="query" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    74  *                 &lt;/sequence> 
    75  *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    76  *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    77  *                 &lt;attribute name="enable" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    78  *                 &lt;attribute name="type"> 
    79  *                   &lt;simpleType> 
    80  *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"> 
    81  *                       &lt;enumeration value="web"/> 
    82  *                       &lt;enumeration value="database"/> 
    83  *                     &lt;/restriction> 
    84  *                   &lt;/simpleType> 
    85  *                 &lt;/attribute> 
    86  *               &lt;/restriction> 
    87  *             &lt;/complexContent> 
    88  *           &lt;/complexType> 
    89  *         &lt;/element> 
    90  *       &lt;/sequence> 
    91  *     &lt;/restriction> 
    92  *   &lt;/complexContent> 
    93  * &lt;/complexType> 
     31 * &lt;complexType&gt; 
     32 *   &lt;complexContent&gt; 
     33 *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     34 *       &lt;sequence&gt; 
     35 *         &lt;element name=&quot;resource&quot; maxOccurs=&quot;unbounded&quot;&gt; 
     36 *           &lt;complexType&gt; 
     37 *             &lt;complexContent&gt; 
     38 *               &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     39 *                 &lt;sequence&gt; 
     40 *                   &lt;element name=&quot;description&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     41 *                   &lt;element name=&quot;parameters&quot;&gt; 
     42 *                     &lt;complexType&gt; 
     43 *                       &lt;complexContent&gt; 
     44 *                         &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     45 *                           &lt;sequence&gt; 
     46 *                             &lt;element ref=&quot;{}parameter&quot; maxOccurs=&quot;unbounded&quot;/&gt; 
     47 *                           &lt;/sequence&gt; 
     48 *                         &lt;/restriction&gt; 
     49 *                       &lt;/complexContent&gt; 
     50 *                     &lt;/complexType&gt; 
     51 *                   &lt;/element&gt; 
     52 *                   &lt;element name=&quot;services&quot;&gt; 
     53 *                     &lt;complexType&gt; 
     54 *                       &lt;complexContent&gt; 
     55 *                         &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     56 *                           &lt;sequence&gt; 
     57 *                             &lt;element name=&quot;sref&quot; maxOccurs=&quot;unbounded&quot;&gt; 
     58 *                               &lt;complexType&gt; 
     59 *                                 &lt;complexContent&gt; 
     60 *                                   &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     61 *                                     &lt;attribute name=&quot;ref&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     62 *                                     &lt;attribute name=&quot;enabled&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}boolean&quot; /&gt; 
     63 *                                   &lt;/restriction&gt; 
     64 *                                 &lt;/complexContent&gt; 
     65 *                               &lt;/complexType&gt; 
     66 *                             &lt;/element&gt; 
     67 *                           &lt;/sequence&gt; 
     68 *                         &lt;/restriction&gt; 
     69 *                       &lt;/complexContent&gt; 
     70 *                     &lt;/complexType&gt; 
     71 *                   &lt;/element&gt; 
     72 *                   &lt;element name=&quot;url&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     73 *                   &lt;element name=&quot;user&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     74 *                   &lt;element name=&quot;password&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     75 *                   &lt;element name=&quot;query&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     76 *                 &lt;/sequence&gt; 
     77 *                 &lt;attribute name=&quot;name&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     78 *                 &lt;attribute name=&quot;title&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     79 *                 &lt;attribute name=&quot;enable&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}boolean&quot; /&gt; 
     80 *                 &lt;attribute name=&quot;type&quot;&gt; 
     81 *                   &lt;simpleType&gt; 
     82 *                     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;&gt; 
     83 *                       &lt;enumeration value=&quot;web&quot;/&gt; 
     84 *                       &lt;enumeration value=&quot;database&quot;/&gt; 
     85 *                     &lt;/restriction&gt; 
     86 *                   &lt;/simpleType&gt; 
     87 *                 &lt;/attribute&gt; 
     88 *               &lt;/restriction&gt; 
     89 *             &lt;/complexContent&gt; 
     90 *           &lt;/complexType&gt; 
     91 *         &lt;/element&gt; 
     92 *       &lt;/sequence&gt; 
     93 *     &lt;/restriction&gt; 
     94 *   &lt;/complexContent&gt; 
     95 * &lt;/complexType&gt; 
    9496 * </pre> 
    9597 *  
     
    9799 */ 
    98100@XmlAccessorType(XmlAccessType.FIELD) 
    99 @XmlType(name = "", propOrder = { 
    100     "resource" 
    101 }) 
     101@XmlType(name = "", propOrder = { "resource" }) 
    102102@XmlRootElement(name = "resources") 
    103 public class Resources { 
    104  
    105     @XmlElement(required = true) 
    106     protected List<Resources.Resource> resource; 
    107  
    108     /** 
    109      * Gets the value of the resource property. 
    110      *  
    111      * <p> 
    112      * This accessor method returns a reference to the live list, 
    113      * not a snapshot. Therefore any modification you make to the 
    114      * returned list will be present inside the JAXB object. 
    115      * This is why there is not a <CODE>set</CODE> method for the resource property. 
    116      *  
    117      * <p> 
    118      * For example, to add a new item, do as follows: 
    119      * <pre> 
    120      *    getResource().add(newItem); 
    121      * </pre> 
    122      *  
    123      *  
    124      * <p> 
    125      * Objects of the following type(s) are allowed in the list 
    126      * {@link Resources.Resource } 
    127      *  
    128      *  
    129      */ 
    130     public List<Resources.Resource> getResource() { 
    131         if (resource == null) { 
    132             resource = new ArrayList<Resources.Resource>(); 
    133         } 
    134         return this.resource; 
    135     } 
    136  
    137  
    138     /** 
    139      * <p>Java class for anonymous complex type. 
    140      *  
    141      * <p>The following schema fragment specifies the expected content contained within this class. 
    142      *  
    143      * <pre> 
    144      * &lt;complexType> 
    145      *   &lt;complexContent> 
    146      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    147      *       &lt;sequence> 
    148      *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    149      *         &lt;element name="parameters"> 
    150      *           &lt;complexType> 
    151      *             &lt;complexContent> 
    152      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    153      *                 &lt;sequence> 
    154      *                   &lt;element ref="{}parameter" maxOccurs="unbounded"/> 
    155      *                 &lt;/sequence> 
    156      *               &lt;/restriction> 
    157      *             &lt;/complexContent> 
    158      *           &lt;/complexType> 
    159      *         &lt;/element> 
    160      *         &lt;element name="services"> 
    161      *           &lt;complexType> 
    162      *             &lt;complexContent> 
    163      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    164      *                 &lt;sequence> 
    165      *                   &lt;element name="sref" maxOccurs="unbounded"> 
    166      *                     &lt;complexType> 
    167      *                       &lt;complexContent> 
    168      *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    169      *                           &lt;attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    170      *                           &lt;attribute name="enabled" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    171      *                         &lt;/restriction> 
    172      *                       &lt;/complexContent> 
    173      *                     &lt;/complexType> 
    174      *                   &lt;/element> 
    175      *                 &lt;/sequence> 
    176      *               &lt;/restriction> 
    177      *             &lt;/complexContent> 
    178      *           &lt;/complexType> 
    179      *         &lt;/element> 
    180      *         &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    181      *         &lt;element name="user" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    182      *         &lt;element name="password" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    183      *         &lt;element name="query" type="{http://www.w3.org/2001/XMLSchema}string"/> 
    184      *       &lt;/sequence> 
    185      *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    186      *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    187      *       &lt;attribute name="enable" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    188      *       &lt;attribute name="type"> 
    189      *         &lt;simpleType> 
    190      *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"> 
    191      *             &lt;enumeration value="web"/> 
    192      *             &lt;enumeration value="database"/> 
    193      *           &lt;/restriction> 
    194      *         &lt;/simpleType> 
    195      *       &lt;/attribute> 
    196      *     &lt;/restriction> 
    197      *   &lt;/complexContent> 
    198      * &lt;/complexType> 
    199      * </pre> 
    200      *  
    201      *  
    202      */ 
    203     @XmlAccessorType(XmlAccessType.FIELD) 
    204     @XmlType(name = "", propOrder = { 
    205         "description", 
    206         "parameters", 
    207         "services", 
    208         "url", 
    209         "user", 
    210         "password", 
    211         "query" 
    212     }) 
    213     public static class Resource { 
    214  
    215         @XmlElement(required = true) 
    216         protected String description; 
    217         @XmlElement(required = true) 
    218         protected Resources.Resource.Parameters parameters; 
    219         @XmlElement(required = true) 
    220         protected Resources.Resource.Services services; 
    221         @XmlElement(required = true) 
    222         protected String url; 
    223         @XmlElement(required = true) 
    224         protected String user; 
    225         @XmlElement(required = true) 
    226         protected String password; 
    227         @XmlElement(required = true) 
    228         protected String query; 
    229         @XmlAttribute 
    230         protected String name; 
    231         @XmlAttribute 
    232         protected String title; 
    233         @XmlAttribute 
    234         protected Boolean enable; 
    235         @XmlAttribute 
    236         protected String type; 
    237  
    238         /** 
    239          * Gets the value of the description property. 
    240          *  
    241          * @return 
    242          *     possible object is 
    243          *     {@link String } 
    244          *      
    245          */ 
    246         public String getDescription() { 
    247             return description; 
    248         } 
    249  
    250         /** 
    251          * Sets the value of the description property. 
    252          *  
    253          * @param value 
    254          *     allowed object is 
    255          *     {@link String } 
    256          *      
    257          */ 
    258         public void setDescription(String value) { 
    259             this.description = value; 
    260         } 
    261  
    262         /** 
    263          * Gets the value of the parameters property. 
    264          *  
    265          * @return 
    266          *     possible object is 
    267          *     {@link Resources.Resource.Parameters } 
    268          *      
    269          */ 
    270         public Resources.Resource.Parameters getParameters() { 
    271             return parameters; 
    272         } 
    273  
    274         /** 
    275          * Sets the value of the parameters property. 
    276          *  
    277          * @param value 
    278          *     allowed object is 
    279          *     {@link Resources.Resource.Parameters } 
    280          *      
    281          */ 
    282         public void setParameters(Resources.Resource.Parameters value) { 
    283             this.parameters = value; 
    284         } 
    285  
    286         /** 
    287          * Gets the value of the services property. 
    288          *  
    289          * @return 
    290          *     possible object is 
    291          *     {@link Resources.Resource.Services } 
    292          *      
    293          */ 
    294         public Resources.Resource.Services getServices() { 
    295             return services; 
    296         } 
    297  
    298         /** 
    299          * Sets the value of the services property. 
    300          *  
    301          * @param value 
    302          *     allowed object is 
    303          *     {@link Resources.Resource.Services } 
    304          *      
    305          */ 
    306         public void setServices(Resources.Resource.Services value) { 
    307             this.services = value; 
    308         } 
    309  
    310         /** 
    311          * Gets the value of the url property. 
    312          *  
    313          * @return 
    314          *     possible object is 
    315          *     {@link String } 
    316          *      
    317          */ 
    318         public String getUrl() { 
    319             return url; 
    320         } 
    321  
    322         /** 
    323          * Sets the value of the url property. 
    324          *  
    325          * @param value 
    326          *     allowed object is 
    327          *     {@link String } 
    328          *      
    329          */ 
    330         public void setUrl(String value) { 
    331             this.url = value; 
    332         } 
    333  
    334         /** 
    335          * Gets the value of the user property. 
    336          *  
    337          * @return 
    338          *     possible object is 
    339          *     {@link String } 
    340          *      
    341          */ 
    342         public String getUser() { 
    343             return user; 
    344         } 
    345  
    346         /** 
    347          * Sets the value of the user property. 
    348          *  
    349          * @param value 
    350          *     allowed object is 
    351          *     {@link String } 
    352          *      
    353          */ 
    354         public void setUser(String value) { 
    355             this.user = value; 
    356         } 
    357  
    358         /** 
    359          * Gets the value of the password property. 
    360          *  
    361          * @return 
    362          *     possible object is 
    363          *     {@link String } 
    364          *      
    365          */ 
    366         public String getPassword() { 
    367             return password; 
    368         } 
    369  
    370         /** 
    371          * Sets the value of the password property. 
    372          *  
    373          * @param value 
    374          *     allowed object is 
    375          *     {@link String } 
    376          *      
    377          */ 
    378         public void setPassword(String value) { 
    379             this.password = value; 
    380         } 
    381  
    382         /** 
    383          * Gets the value of the query property. 
    384          *  
    385          * @return 
    386          *     possible object is 
    387          *     {@link String } 
    388          *      
    389          */ 
    390         public String getQuery() { 
    391             return query; 
    392         } 
    393  
    394         /** 
    395          * Sets the value of the query property. 
    396          *  
    397          * @param value 
    398          *     allowed object is 
    399          *     {@link String } 
    400          *      
    401          */ 
    402         public void setQuery(String value) { 
    403             this.query = value; 
    404         } 
    405  
    406         /** 
    407          * Gets the value of the name property. 
    408          *  
    409          * @return 
    410          *     possible object is 
    411          *     {@link String } 
    412          *      
    413          */ 
    414         public String getName() { 
    415             return name; 
    416         } 
    417  
    418         /** 
    419          * Sets the value of the name property. 
    420          *  
    421          * @param value 
    422          *     allowed object is 
    423          *     {@link String } 
    424          *      
    425          */ 
    426         public void setName(String value) { 
    427             this.name = value; 
    428         } 
    429  
    430         /** 
    431          * Gets the value of the title property. 
    432          *  
    433          * @return 
    434          *     possible object is 
    435          *     {@link String } 
    436          *      
    437          */ 
    438         public String getTitle() { 
    439             return title; 
    440         } 
    441  
    442         /** 
    443          * Sets the value of the title property. 
    444          *  
    445          * @param value 
    446          *     allowed object is 
    447          *     {@link String } 
    448          *      
    449          */ 
    450         public void setTitle(String value) { 
    451             this.title = value; 
    452         } 
    453  
    454         /** 
    455          * Gets the value of the enable property. 
    456          *  
    457          * @return 
    458          *     possible object is 
    459          *     {@link Boolean } 
    460          *      
    461          */ 
    462         public Boolean isEnable() { 
    463             return enable; 
    464         } 
    465  
    466         /** 
    467          * Sets the value of the enable property. 
    468          *  
    469          * @param value 
    470          *     allowed object is 
    471          *     {@link Boolean } 
    472          *      
    473          */ 
    474         public void setEnable(Boolean value) { 
    475             this.enable = value; 
    476         } 
    477  
    478         /** 
    479          * Gets the value of the type property. 
    480          *  
    481          * @return 
    482          *     possible object is 
    483          *     {@link String } 
    484          *      
    485          */ 
    486         public String getType() { 
    487             return type; 
    488         } 
    489  
    490         /** 
    491          * Sets the value of the type property. 
    492          *  
    493          * @param value 
    494          *     allowed object is 
    495          *     {@link String } 
    496          *      
    497          */ 
    498         public void setType(String value) { 
    499             this.type = value; 
    500         } 
    501  
    502  
    503         /** 
    504          * <p>Java class for anonymous complex type. 
    505          *  
    506          * <p>The following schema fragment specifies the expected content contained within this class. 
    507          *  
    508          * <pre> 
    509          * &lt;complexType> 
    510          *   &lt;complexContent> 
    511          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    512          *       &lt;sequence> 
    513          *         &lt;element ref="{}parameter" maxOccurs="unbounded"/> 
    514          *       &lt;/sequence> 
    515          *     &lt;/restriction> 
    516          *   &lt;/complexContent> 
    517          * &lt;/complexType> 
    518          * </pre> 
    519          *  
    520          *  
    521          */ 
    522         @XmlAccessorType(XmlAccessType.FIELD) 
    523         @XmlType(name = "", propOrder = { 
    524             "parameter" 
    525         }) 
    526         public static class Parameters { 
    527  
    528             @XmlElement(required = true) 
    529             protected List<Parameter> parameter; 
    530  
    531             /** 
    532              * Gets the value of the parameter property. 
    533              *  
    534              * <p> 
    535              * This accessor method returns a reference to the live list, 
    536              * not a snapshot. Therefore any modification you make to the 
    537              * returned list will be present inside the JAXB object. 
    538              * This is why there is not a <CODE>set</CODE> method for the parameter property. 
    539              *  
    540              * <p> 
    541              * For example, to add a new item, do as follows: 
    542              * <pre> 
    543              *    getParameter().add(newItem); 
    544              * </pre> 
    545              *  
    546              *  
    547              * <p> 
    548              * Objects of the following type(s) are allowed in the list 
    549              * {@link Parameter } 
    550              *  
    551              *  
    552              */ 
    553             public List<Parameter> getParameter() { 
    554                 if (parameter == null) { 
    555                     parameter = new ArrayList<Parameter>(); 
    556                 } 
    557                 return this.parameter; 
    558             } 
    559  
    560         } 
    561  
    562  
    563         /** 
    564          * <p>Java class for anonymous complex type. 
    565          *  
    566          * <p>The following schema fragment specifies the expected content contained within this class. 
    567          *  
    568          * <pre> 
    569          * &lt;complexType> 
    570          *   &lt;complexContent> 
    571          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    572          *       &lt;sequence> 
    573          *         &lt;element name="sref" maxOccurs="unbounded"> 
    574          *           &lt;complexType> 
    575          *             &lt;complexContent> 
    576          *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    577          *                 &lt;attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    578          *                 &lt;attribute name="enabled" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    579          *               &lt;/restriction> 
    580          *             &lt;/complexContent> 
    581          *           &lt;/complexType> 
    582          *         &lt;/element> 
    583          *       &lt;/sequence> 
    584          *     &lt;/restriction> 
    585          *   &lt;/complexContent> 
    586          * &lt;/complexType> 
    587          * </pre> 
    588          *  
    589          *  
    590          */ 
    591         @XmlAccessorType(XmlAccessType.FIELD) 
    592         @XmlType(name = "", propOrder = { 
    593             "sref" 
    594         }) 
    595         public static class Services { 
    596  
    597             @XmlElement(required = true) 
    598             protected List<Resources.Resource.Services.Sref> sref; 
    599  
    600             /** 
    601              * Gets the value of the sref property. 
    602              *  
    603              * <p> 
    604              * This accessor method returns a reference to the live list, 
    605              * not a snapshot. Therefore any modification you make to the 
    606              * returned list will be present inside the JAXB object. 
    607              * This is why there is not a <CODE>set</CODE> method for the sref property. 
    608              *  
    609              * <p> 
    610              * For example, to add a new item, do as follows: 
    611              * <pre> 
    612              *    getSref().add(newItem); 
    613              * </pre> 
    614              *  
    615              *  
    616              * <p> 
    617              * Objects of the following type(s) are allowed in the list 
    618              * {@link Resources.Resource.Services.Sref } 
    619              *  
    620              *  
    621              */ 
    622             public List<Resources.Resource.Services.Sref> getSref() { 
    623                 if (sref == null) { 
    624                     sref = new ArrayList<Resources.Resource.Services.Sref>(); 
    625                 } 
    626                 return this.sref; 
    627             } 
    628  
    629  
    630             /** 
    631              * <p>Java class for anonymous complex type. 
    632              *  
    633              * <p>The following schema fragment specifies the expected content contained within this class. 
    634              *  
    635              * <pre> 
    636              * &lt;complexType> 
    637              *   &lt;complexContent> 
    638              *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    639              *       &lt;attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}string" /> 
    640              *       &lt;attribute name="enabled" type="{http://www.w3.org/2001/XMLSchema}boolean" /> 
    641              *     &lt;/restriction> 
    642              *   &lt;/complexContent> 
    643              * &lt;/complexType> 
    644              * </pre> 
    645              *  
    646              *  
    647              */ 
    648             @XmlAccessorType(XmlAccessType.FIELD) 
    649             @XmlType(name = "") 
    650             public static class Sref { 
    651  
    652                 @XmlAttribute 
    653                 protected String ref; 
    654                 @XmlAttribute 
    655                 protected Boolean enabled; 
    656  
    657                 /** 
    658                  * Gets the value of the ref property. 
    659                  *  
    660                  * @return 
    661                  *     possible object is 
    662                  *     {@link String } 
    663                  *      
    664                  */ 
    665                 public String getRef() { 
    666                     return ref; 
    667                 } 
    668  
    669                 /** 
    670                  * Sets the value of the ref property. 
    671                  *  
    672                  * @param value 
    673                  *     allowed object is 
    674                  *     {@link String } 
    675                  *      
    676                  */ 
    677                 public void setRef(String value) { 
    678                     this.ref = value; 
    679                 } 
    680  
    681                 /** 
    682                  * Gets the value of the enabled property. 
    683                  *  
    684                  * @return 
    685                  *     possible object is 
    686                  *     {@link Boolean } 
    687                  *      
    688                  */ 
    689                 public Boolean isEnabled() { 
    690                     return enabled; 
    691                 } 
    692  
    693                 /** 
    694                  * Sets the value of the enabled property. 
    695                  *  
    696                  * @param value 
    697                  *     allowed object is 
    698                  *     {@link Boolean } 
    699                  *      
    700                  */ 
    701                 public void setEnabled(Boolean value) { 
    702                     this.enabled = value; 
    703                 } 
    704  
    705             } 
    706  
    707         } 
    708  
    709     } 
     103public class Resources 
     104{ 
     105 
     106        @XmlElement(required = true) 
     107        protected List<Resources.Resource> resource; 
     108 
     109        /** 
     110         * Gets the value of the resource property. 
     111         *  
     112         * <p> 
     113         * This accessor method returns a reference to the live list, not a 
     114         * snapshot. Therefore any modification you make to the returned list will 
     115         * be present inside the JAXB object. This is why there is not a 
     116         * <CODE>set</CODE> method for the resource property. 
     117         *  
     118         * <p> 
     119         * For example, to add a new item, do as follows: 
     120         *  
     121         * <pre> 
     122         * getResource().add(newItem); 
     123         * </pre> 
     124         *  
     125         *  
     126         * <p> 
     127         * Objects of the following type(s) are allowed in the list 
     128         * {@link Resources.Resource } 
     129         *  
     130         *  
     131         */ 
     132        public List<Resources.Resource> getResource() 
     133        { 
     134                if (resource == null) 
     135                { 
     136                        resource = new ArrayList<Resources.Resource>(); 
     137                } 
     138                return this.resource; 
     139        } 
     140 
     141        /** 
     142         * <p> 
     143         * Java class for anonymous complex type. 
     144         *  
     145         * <p> 
     146         * The following schema fragment specifies the expected content contained 
     147         * within this class. 
     148         *  
     149         * <pre> 
     150         * &lt;complexType&gt; 
     151         *   &lt;complexContent&gt; 
     152         *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     153         *       &lt;sequence&gt; 
     154         *         &lt;element name=&quot;description&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     155         *         &lt;element name=&quot;parameters&quot;&gt; 
     156         *           &lt;complexType&gt; 
     157         *             &lt;complexContent&gt; 
     158         *               &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     159         *                 &lt;sequence&gt; 
     160         *                   &lt;element ref=&quot;{}parameter&quot; maxOccurs=&quot;unbounded&quot;/&gt; 
     161         *                 &lt;/sequence&gt; 
     162         *               &lt;/restriction&gt; 
     163         *             &lt;/complexContent&gt; 
     164         *           &lt;/complexType&gt; 
     165         *         &lt;/element&gt; 
     166         *         &lt;element name=&quot;services&quot;&gt; 
     167         *           &lt;complexType&gt; 
     168         *             &lt;complexContent&gt; 
     169         *               &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     170         *                 &lt;sequence&gt; 
     171         *                   &lt;element name=&quot;sref&quot; maxOccurs=&quot;unbounded&quot;&gt; 
     172         *                     &lt;complexType&gt; 
     173         *                       &lt;complexContent&gt; 
     174         *                         &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     175         *                           &lt;attribute name=&quot;ref&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     176         *                           &lt;attribute name=&quot;enabled&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}boolean&quot; /&gt; 
     177         *                         &lt;/restriction&gt; 
     178         *                       &lt;/complexContent&gt; 
     179         *                     &lt;/complexType&gt; 
     180         *                   &lt;/element&gt; 
     181         *                 &lt;/sequence&gt; 
     182         *               &lt;/restriction&gt; 
     183         *             &lt;/complexContent&gt; 
     184         *           &lt;/complexType&gt; 
     185         *         &lt;/element&gt; 
     186         *         &lt;element name=&quot;url&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     187         *         &lt;element name=&quot;user&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     188         *         &lt;element name=&quot;password&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     189         *         &lt;element name=&quot;query&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;/&gt; 
     190         *       &lt;/sequence&gt; 
     191         *       &lt;attribute name=&quot;name&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     192         *       &lt;attribute name=&quot;title&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     193         *       &lt;attribute name=&quot;enable&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}boolean&quot; /&gt; 
     194         *       &lt;attribute name=&quot;type&quot;&gt; 
     195         *         &lt;simpleType&gt; 
     196         *           &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}string&quot;&gt; 
     197         *             &lt;enumeration value=&quot;web&quot;/&gt; 
     198         *             &lt;enumeration value=&quot;database&quot;/&gt; 
     199         *           &lt;/restriction&gt; 
     200         *         &lt;/simpleType&gt; 
     201         *       &lt;/attribute&gt; 
     202         *     &lt;/restriction&gt; 
     203         *   &lt;/complexContent&gt; 
     204         * &lt;/complexType&gt; 
     205         * </pre> 
     206         *  
     207         *  
     208         */ 
     209        @XmlAccessorType(XmlAccessType.FIELD) 
     210        @XmlType(name = "", propOrder = { "description", "parameters", "services", 
     211                        "url", "user", "password", "query" }) 
     212        public static class Resource 
     213        { 
     214 
     215                @XmlElement(required = true) 
     216                protected String description; 
     217                @XmlElement(required = true) 
     218                protected Resources.Resource.Parameters parameters; 
     219                @XmlElement(required = true) 
     220                protected Resources.Resource.Services services; 
     221                @XmlElement(required = true) 
     222                protected String url; 
     223                @XmlElement(required = true) 
     224                protected String user; 
     225                @XmlElement(required = true) 
     226                protected String password; 
     227                @XmlElement(required = true) 
     228                protected String query; 
     229                @XmlAttribute 
     230                protected String name; 
     231                @XmlAttribute 
     232                protected String title; 
     233                @XmlAttribute 
     234                protected Boolean enable; 
     235                @XmlAttribute 
     236                protected String type; 
     237 
     238                /** 
     239                 * Gets the value of the description property. 
     240                 *  
     241                 * @return possible object is {@link String } 
     242                 *  
     243                 */ 
     244                public String getDescription() 
     245                { 
     246                        return description; 
     247                } 
     248 
     249                /** 
     250                 * Sets the value of the description property. 
     251                 *  
     252                 * @param value 
     253                 *            allowed object is {@link String } 
     254                 *  
     255                 */ 
     256                public void setDescription(String value) 
     257                { 
     258                        this.description = value; 
     259                } 
     260 
     261                /** 
     262                 * Gets the value of the parameters property. 
     263                 *  
     264                 * @return possible object is {@link Resources.Resource.Parameters } 
     265                 *  
     266                 */ 
     267                public Resources.Resource.Parameters getParameters() 
     268                { 
     269                        return parameters; 
     270                } 
     271 
     272                /** 
     273                 * Sets the value of the parameters property. 
     274                 *  
     275                 * @param value 
     276                 *            allowed object is {@link Resources.Resource.Parameters } 
     277                 *  
     278                 */ 
     279                public void setParameters(Resources.Resource.Parameters value) 
     280                { 
     281                        this.parameters = value; 
     282                } 
     283 
     284                /** 
     285                 * Gets the value of the services property. 
     286                 *  
     287                 * @return possible object is {@link Resources.Resource.Services } 
     288                 *  
     289                 */ 
     290                public Resources.Resource.Services getServices() 
     291                { 
     292                        return services; 
     293                } 
     294 
     295                /** 
     296                 * Sets the value of the services property. 
     297                 *  
     298                 * @param value 
     299                 *            allowed object is {@link Resources.Resource.Services } 
     300                 *  
     301                 */ 
     302                public void setServices(Resources.Resource.Services value) 
     303                { 
     304                        this.services = value; 
     305                } 
     306 
     307                /** 
     308                 * Gets the value of the url property. 
     309                 *  
     310                 * @return possible object is {@link String } 
     311                 *  
     312                 */ 
     313                public String getUrl() 
     314                { 
     315                        return url; 
     316                } 
     317 
     318                /** 
     319                 * Sets the value of the url property. 
     320                 *  
     321                 * @param value 
     322                 *            allowed object is {@link String } 
     323                 *  
     324                 */ 
     325                public void setUrl(String value) 
     326                { 
     327                        this.url = value; 
     328                } 
     329 
     330                /** 
     331                 * Gets the value of the user property. 
     332                 *  
     333                 * @return possible object is {@link String } 
     334                 *  
     335                 */ 
     336                public String getUser() 
     337                { 
     338                        return user; 
     339                } 
     340 
     341                /** 
     342                 * Sets the value of the user property. 
     343                 *  
     344                 * @param value 
     345                 *            allowed object is {@link String } 
     346                 *  
     347                 */ 
     348                public void setUser(String value) 
     349                { 
     350                        this.user = value; 
     351                } 
     352 
     353                /** 
     354                 * Gets the value of the password property. 
     355                 *  
     356                 * @return possible object is {@link String } 
     357                 *  
     358                 */ 
     359                public String getPassword() 
     360                { 
     361                        return password; 
     362                } 
     363 
     364                /** 
     365                 * Sets the value of the password property. 
     366                 *  
     367                 * @param value 
     368                 *            allowed object is {@link String } 
     369                 *  
     370                 */ 
     371                public void setPassword(String value) 
     372                { 
     373                        this.password = value; 
     374                } 
     375 
     376                /** 
     377                 * Gets the value of the query property. 
     378                 *  
     379                 * @return possible object is {@link String } 
     380                 *  
     381                 */ 
     382                public String getQuery() 
     383                { 
     384                        return query; 
     385                } 
     386 
     387                /** 
     388                 * Sets the value of the query property. 
     389                 *  
     390                 * @param value 
     391                 *            allowed object is {@link String } 
     392                 *  
     393                 */ 
     394                public void setQuery(String value) 
     395                { 
     396                        this.query = value; 
     397                } 
     398 
     399                /** 
     400                 * Gets the value of the name property. 
     401                 *  
     402                 * @return possible object is {@link String } 
     403                 *  
     404                 */ 
     405                public String getName() 
     406                { 
     407                        return name; 
     408                } 
     409 
     410                /** 
     411                 * Sets the value of the name property. 
     412                 *  
     413                 * @param value 
     414                 *            allowed object is {@link String } 
     415                 *  
     416                 */ 
     417                public void setName(String value) 
     418                { 
     419                        this.name = value; 
     420                } 
     421 
     422                /** 
     423                 * Gets the value of the title property. 
     424                 *  
     425                 * @return possible object is {@link String } 
     426                 *  
     427                 */ 
     428                public String getTitle() 
     429                { 
     430                        return title; 
     431                } 
     432 
     433                /** 
     434                 * Sets the value of the title property. 
     435                 *  
     436                 * @param value 
     437                 *            allowed object is {@link String } 
     438                 *  
     439                 */ 
     440                public void setTitle(String value) 
     441                { 
     442                        this.title = value; 
     443                } 
     444 
     445                /** 
     446                 * Gets the value of the enable property. 
     447                 *  
     448                 * @return possible object is {@link Boolean } 
     449                 *  
     450                 */ 
     451                public Boolean isEnable() 
     452                { 
     453                        return enable; 
     454                } 
     455 
     456                /** 
     457                 * Sets the value of the enable property. 
     458                 *  
     459                 * @param value 
     460                 *            allowed object is {@link Boolean } 
     461                 *  
     462                 */ 
     463                public void setEnable(Boolean value) 
     464                { 
     465                        this.enable = value; 
     466                } 
     467 
     468                /** 
     469                 * Gets the value of the type property. 
     470                 *  
     471                 * @return possible object is {@link String } 
     472                 *  
     473                 */ 
     474                public String getType() 
     475                { 
     476                        return type; 
     477                } 
     478 
     479                /** 
     480                 * Sets the value of the type property. 
     481                 *  
     482                 * @param value 
     483                 *            allowed object is {@link String } 
     484                 *  
     485                 */ 
     486                public void setType(String value) 
     487                { 
     488                        this.type = value; 
     489                } 
     490 
     491                /** 
     492                 * <p> 
     493                 * Java class for anonymous complex type. 
     494                 *  
     495                 * <p> 
     496                 * The following schema fragment specifies the expected content 
     497                 * contained within this class. 
     498                 *  
     499                 * <pre> 
     500                 * &lt;complexType&gt; 
     501                 *   &lt;complexContent&gt; 
     502                 *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     503                 *       &lt;sequence&gt; 
     504                 *         &lt;element ref=&quot;{}parameter&quot; maxOccurs=&quot;unbounded&quot;/&gt; 
     505                 *       &lt;/sequence&gt; 
     506                 *     &lt;/restriction&gt; 
     507                 *   &lt;/complexContent&gt; 
     508                 * &lt;/complexType&gt; 
     509                 * </pre> 
     510                 *  
     511                 *  
     512                 */ 
     513                @XmlAccessorType(XmlAccessType.FIELD) 
     514                @XmlType(name = "", propOrder = { "parameter" }) 
     515                public static class Parameters 
     516                { 
     517 
     518                        @XmlElement(required = true) 
     519                        protected List<Parameter> parameter; 
     520 
     521                        /** 
     522                         * Gets the value of the parameter property. 
     523                         *  
     524                         * <p> 
     525                         * This accessor method returns a reference to the live list, not a 
     526                         * snapshot. Therefore any modification you make to the returned 
     527                         * list will be present inside the JAXB object. This is why there is 
     528                         * not a <CODE>set</CODE> method for the parameter property. 
     529                         *  
     530                         * <p> 
     531                         * For example, to add a new item, do as follows: 
     532                         *  
     533                         * <pre> 
     534                         * getParameter().add(newItem); 
     535                         * </pre> 
     536                         *  
     537                         *  
     538                         * <p> 
     539                         * Objects of the following type(s) are allowed in the list 
     540                         * {@link Parameter } 
     541                         *  
     542                         *  
     543                         */ 
     544                        public List<Parameter> getParameter() 
     545                        { 
     546                                if (parameter == null) 
     547                                { 
     548                                        parameter = new ArrayList<Parameter>(); 
     549                                } 
     550                                return this.parameter; 
     551                        } 
     552 
     553                } 
     554 
     555                /** 
     556                 * <p> 
     557                 * Java class for anonymous complex type. 
     558                 *  
     559                 * <p> 
     560                 * The following schema fragment specifies the expected content 
     561                 * contained within this class. 
     562                 *  
     563                 * <pre> 
     564                 * &lt;complexType&gt; 
     565                 *   &lt;complexContent&gt; 
     566                 *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     567                 *       &lt;sequence&gt; 
     568                 *         &lt;element name=&quot;sref&quot; maxOccurs=&quot;unbounded&quot;&gt; 
     569                 *           &lt;complexType&gt; 
     570                 *             &lt;complexContent&gt; 
     571                 *               &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt; 
     572                 *                 &lt;attribute name=&quot;ref&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}string&quot; /&gt; 
     573                 *                 &lt;attribute name=&quot;enabled&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}boolean&quot; /&gt; 
     574                 *               &lt;/restriction&gt; 
     575                 *             &lt;/complexContent&gt; 
     576                 *           &lt;/complexType&gt; 
     577                 *         &lt;/element&gt; 
     578                 *       &lt;/sequence&gt; 
     579                 *     &lt;/restriction&gt; 
     580                 *   &lt;/complexContent&gt; 
     581                 * &lt;/complexType&gt; 
     582                 * </pre> 
     583                 *  
     584                 *  
     585                 */ 
     586                @XmlAccessorType(XmlAccessType.FIELD) 
     587                @XmlType(name = "", propOrder = { "sref" }) 
     588                public static class Services 
     589                { 
     590 
     591                        @XmlElement(required = true) 
     592                        protected List<Sref> sref; 
     593 
     594                        /** 
     595                         * Gets the value of the sref property. 
     596                         *  
     597                         * <p> 
     598                         * This accessor method returns a reference to the live list, not a 
     599                         * snapshot. Therefore any modification you make to the returned 
     600                         * list will be present inside the JAXB object. This is why there is 
     601                         * not a <CODE>set</CODE> method for the sref property. 
     602                         *  
     603                         * <p> 
     604                         * For example, to add a new item, do as follows: 
     605                         *  
     606                         * <pre> 
     607                         * getSref().add(newItem); 
     608                         * </pre> 
     609                         *  
     610                         *  
     611                         * <p> 
     612                         * Objects of the following type(s) are allowed in the list 
     613                         * {@link Resources.Resource.Services.Sref } 
     614                         *  
     615                         *  
     616                         */ 
     617                        public List<Sref> getSref() 
     618                        { 
     619                                if (sref == null) 
     620                                { 
     621                                        sref = new ArrayList<Sref>(); 
     622                                } 
     623                                return this.sref; 
     624                        } 
     625 
     626 
     627                } 
     628 
     629        } 
    710630 
    711631}