Package org.geotools.process

Examples of org.geotools.process.ProcessFactory


        };
        form.add(cancel);
    }
   
    protected Collection<? extends Name> getFilteredProcesses() {
        ProcessFactory pf = GeoServerProcessors.getProcessFactory(pfi.getFactoryClass(), false);
        List<Name> disabled = new ArrayList<Name>(pf.getNames());
        for(FilteredProcess fp : processSelector.getSelection()) {
            disabled.remove(fp.getName());
        }
       
        return disabled;
View Full Code Here


            @Override
            public Object getPropertyValue(ProcessGroupInfo item) {
                Class factoryClass = item.getFactoryClass();
                Set<String> prefixes = new HashSet<String>();
                ProcessFactory pf = GeoServerProcessors.getProcessFactory(factoryClass, true);
                if(pf != null) {
                    Set<Name> names = pf.getNames();
                    for (Name name : names) {
                        prefixes.add(name.getNamespaceURI());
                    }
                }
               
                // if we cannot find a title use the class name
                if(prefixes.isEmpty()) {
                    return "";
                } else {
                    // build a comma separated list with the prefixes
                    List<String> pl = new ArrayList<String>(prefixes);
                    Collections.sort(pl);
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < pl.size(); i++) {
                        sb.append(pl.get(i));
                        if(i < pl.size() - 1) {
                            sb.append(", ");
                        }
                    }
                   
                    return sb.toString();
                }
            }

        });
        props.add(new AbstractProperty<ProcessGroupInfo>("title") {

            @Override
            public Object getPropertyValue(ProcessGroupInfo item) {
                Class factoryClass = item.getFactoryClass();
                String title = null;
                ProcessFactory pf = GeoServerProcessors.getProcessFactory(factoryClass, true);
                if(pf != null) {
                    title = pf.getTitle().toString(locale);
                }
               
                // if we cannot find a title use the class name
                if(title == null) {
                    title = factoryClass.getName();
                }
               
                return title;
            }

        });
        props.add(new AbstractProperty<ProcessGroupInfo>("summary") {

            @Override
            public Object getPropertyValue(final ProcessGroupInfo item) {
                return new LoadableDetachableModel<String>() {

                    @Override
                    protected String load() {
                        if(item.getFilteredProcesses().isEmpty()) {
                            // all processes are enabled
                            return new ParamResourceModel("WPSAdminPage.filter.all", null).getString();
                        }
                       
                        Class factoryClass = item.getFactoryClass();
                        ProcessFactory pf = GeoServerProcessors.getProcessFactory(factoryClass, false);
                        if(pf != null) {
                            Set<Name> names = new HashSet<Name>(pf.getNames());
                            int total = names.size();
                            names.removeAll(item.getFilteredProcesses());
                            int active = names.size();
                            return new ParamResourceModel("WPSAdminPage.filter.active", null, active, total).getString();
                           
View Full Code Here

        authenticationContainer.add(checkbox);
    }

    private void initProcessView() {
        Name name = Ows11Util.name(execute.processName);
        ProcessFactory pf = Processors.createProcessFactory(name);
        if (pf == null) {
            error("No such process: " + execute.processName);
            descriptionContainer.setVisible(false);
            inputContainer.setVisible(false);
            outputContainer.setVisible(false);
        } else {
            description = pf.getDescription(name).toString(Locale.ENGLISH);
            execute.inputs = buildInputParameters(pf, name);
            execute.outputs = buildOutputParameters(pf, name);
            inputView.removeAll();
            outputView.removeAll();
            descriptionContainer.setVisible(true);
View Full Code Here

        return pds;
    }
   
    void processDescription( CodeType id, ProcessDescriptionsType pds ) {
        Name name = Ows11Util.name(id);
        ProcessFactory pf = GeoServerProcessors.createProcessFactory(name);
        if ( pf == null || pf.create(name) == null) {
            throw new WPSException( "No such process: " + id.getValue() );
        }
       
        ProcessDescriptionType pd = wpsf.createProcessDescriptionType();
        pds.getProcessDescription().add( pd );
       
        pd.setProcessVersion( "1.0.0" );
        pd.setIdentifier( Ows11Util.code( id.getValue() ) );
        pd.setTitle( Ows11Util.languageString(pf.getTitle(name)) );
        pd.setAbstract( Ows11Util.languageString(pf.getDescription(name)) );
        pd.setStatusSupported(true);
        pd.setStoreSupported(true);
       
        // data inputs
        DataInputsType inputs = wpsf.createDataInputsType();
View Full Code Here

                    ResponseUtils.buildURL(request.getBaseUrl(), "ows", null, URLType.SERVICE), ""));
        }

        // process
        Name processName = helper.getProcessName();
        ProcessFactory pf = GeoServerProcessors.createProcessFactory(processName);
        final ProcessBriefType process = f.createProcessBriefType();
        response.setProcess(process);
        // damn blasted EMF changes the state of request if we set its identifier on
        // another object! (I guess, following some strict ownership rule...)
        process.setIdentifier((CodeType) EMFUtils.clone(request.getIdentifier(),
                Ows11Factory.eINSTANCE, true));
        process.setProcessVersion(pf.getVersion(processName));
        process.setTitle(Ows11Util.languageString(pf.getTitle(processName)));
        process.setAbstract(Ows11Util.languageString(pf.getDescription(processName)));

        // status
        response.setStatus(f.createStatusType());
        XMLGregorianCalendar gc = Converters.convert(created, XMLGregorianCalendar.class);
        response.getStatus().setCreationTime(gc);
        if (status == null) {
            if (exception != null) {
                setResponseFailed(response, getException(ProcessState.COMPLETED));
            } else if (outputs == null) {
                response.getStatus().setProcessAccepted("Process accepted.");
            } else {
                response.getStatus().setProcessSucceeded("Process succeeded.");
            }
        } else {
            if (status.getPhase() == ProcessState.QUEUED) {
                response.getStatus().setProcessAccepted("Process accepted.");
            } else if (status.getPhase() == ProcessState.RUNNING) {
                ProcessStartedType startedType = f.createProcessStartedType();
                int progressPercent = Math.round(status.getProgress());
                if(progressPercent < 0) {
                    LOGGER.warning("Progress reported is below zero, fixing it to 0: " + progressPercent);
                    progressPercent = 0;
                } else if(progressPercent > 100) {
                    LOGGER.warning("Progress reported is above 100, fixing it to 100: " + progressPercent);
                    progressPercent = 100;
                }
                startedType.setPercentCompleted(new BigInteger(String.valueOf(progressPercent)));
                startedType.setValue(status.getTask());
                response.getStatus().setProcessStarted(startedType);
            } else if (status.getPhase() == ProcessState.COMPLETED) {
                response.getStatus().setProcessSucceeded("Process succeeded.");
            } else {
                ServiceException reportException = getException(status.getPhase());
                setResponseFailed(response, reportException);
            }
        }

        // status location, if asynch
        if (helper.isAsynchronous() && request.getBaseUrl() != null && executionId != null) {
            Map<String, String> kvp = new LinkedHashMap<String, String>();
            kvp.put("service", "WPS");
            kvp.put("version", "1.0.0");
            kvp.put("request", "GetExecutionStatus");
            kvp.put("executionId", executionId);
            response.setStatusLocation(ResponseUtils.buildURL(request.getBaseUrl(), "ows", kvp, URLType.SERVICE));

        }

        // lineage, should be included only if requested, the response should contain it
        // even if the process is not done computing. From the spec:
        // * If lineage is "true" the server shall include in the execute response a complete copy
        // of
        // the DataInputs and OutputDefinition elements _as received in the execute request_.
        // *If lineage is "false" then/ these elements shall be omitted from the response
        if (helper.isLineageRequested()) {
            // inputs
            if (request.getDataInputs() != null && request.getDataInputs().getInput().size() > 0) {
                response.setDataInputs(f.createDataInputsType1());
                for (Iterator i = request.getDataInputs().getInput().iterator(); i.hasNext();) {
                    InputType input = (InputType) i.next();
                    response.getDataInputs().getInput().add(EMFUtils.clone(input, f, true));
                }
            }

            // output definitions, if any was requested explicitly
            List<DocumentOutputDefinitionType> outputList = helper.getRequestedOutputs();
            if (outputList != null) {
                OutputDefinitionsType outputs = f.createOutputDefinitionsType();
                response.setOutputDefinitions(outputs);
                for (DocumentOutputDefinitionType output : outputList) {
                    outputs.getOutput().add(EMFUtils.clone(output, f, true));
                }
            }
        }

        // process outputs
        if (exception == null && outputs != null) {
            ProcessOutputsType1 processOutputs = f.createProcessOutputsType1();
            response.setProcessOutputs(processOutputs);

            Map<String, Parameter<?>> resultInfo = pf.getResultInfo(processName, null);

            if (request.getResponseForm() != null
                    && request.getResponseForm().getResponseDocument() != null
                    && request.getResponseForm().getResponseDocument().getOutput() != null
                    && request.getResponseForm().getResponseDocument().getOutput().size() > 0) {
View Full Code Here

        List<ProcessGroupInfo> groups = wps.getProcessGroups();
        disabledProcesses.clear();
        if (groups != null) {
            for (ProcessGroupInfo group : groups) {
                if (!group.isEnabled()) {
                    ProcessFactory factory = GeoServerProcessors.getProcessFactory(group.getFactoryClass(), false);
                    if(factory != null) {
                        disabledProcesses.addAll(factory.getNames());
                    }
                } else if (group.getFilteredProcesses() != null) {
                    disabledProcesses.addAll(group.getFilteredProcesses());
                }
            }
View Full Code Here

    @Override
    public Map<String, Object> submitChained(String executionId, Name processName,
            Map<String, Object> inputs) throws ProcessException {
        // straight execution, no thread pooling, we're already running in the parent process thread
        ProcessListener listener = new ProcessListener(new ExecutionStatus(processName, executionId, ProcessState.RUNNING, 0, null));
        ProcessFactory pf = GeoServerProcessors.createProcessFactory(processName);
        if (pf == null) {
            throw new WPSException("No such process: " + processName);
        }

        // execute the process in the same thread as the caller
        Process p = pf.create(processName);
        Map<String, Object> result = p.execute(inputs, listener);
        if (listener.exception != null) {
            throw new ProcessException("Process failed: " + listener.exception.getMessage(),
                    listener.exception);
        }
View Full Code Here

               
                resourceManager.setCurrentExecutionId(status.getExecutionId());
                status.setPhase(ProcessState.RUNNING);
                ProcessListener listener = status.listener;
                Name processName = status.getProcessName();
                ProcessFactory pf = GeoServerProcessors.createProcessFactory(processName);
                if (pf == null) {
                    throw new WPSException("No such process: " + processName);
                }
   
                // execute the process
                Map<String, Object> result = null;
                try {
                    Process p = pf.create(processName);
                    result = p.execute(inputs, listener);
                    if (listener.exception != null) {
                        throw new WPSException("Process failed: " + listener.exception.getMessage(),
                                listener.exception);
                    }
View Full Code Here

        GeoServer gs = getGeoServer();
        WPSInfo wps = gs.getService(WPSInfo.class);
       
        // remove all jts processes but buffer
        NameImpl bufferName = new NameImpl("JTS", "buffer");
        ProcessFactory jts = Processors.createProcessFactory(bufferName);
        ProcessGroupInfo jtsGroup = new ProcessGroupInfoImpl();
        jtsGroup.setFactoryClass(jts.getClass());
        jtsGroup.setEnabled(true);
        List<Name> jtsNames = new ArrayList<Name>(jts.getNames());
        jtsNames.remove(bufferName);
        jtsGroup.getFilteredProcesses().addAll(jtsNames);
        List<ProcessGroupInfo> pgs = wps.getProcessGroups();
        pgs.clear();
        pgs.add(jtsGroup);
View Full Code Here

  }

  @Test
  public void testSPI() throws Exception {
    NameImpl boundsName = new NameImpl("bean", "Bounds");
    ProcessFactory factory = GeoServerProcessors.createProcessFactory(boundsName);
    assertNotNull(factory);
    assertTrue(factory instanceof BeanProcessFactory);

    org.geotools.process.Process buffer = GeoServerProcessors
        .createProcess(boundsName);
View Full Code Here

TOP

Related Classes of org.geotools.process.ProcessFactory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.