org.apache.taverna.scufl2.rdfxml.ParserState.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.taverna.scufl2.rdfxml.ParserState.java

Source

package org.apache.taverna.scufl2.rdfxml;
/*
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
*/

import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

import org.apache.taverna.scufl2.api.common.WorkflowBean;
import org.apache.taverna.scufl2.api.core.Processor;
import org.apache.taverna.scufl2.ucfpackage.UCFPackage;

import com.fasterxml.jackson.databind.node.ObjectNode;

public class ParserState {
    private Map<WorkflowBean, URI> beanToUri = new HashMap<>();
    private URI currentBase;
    private URI location;
    private Stack<WorkflowBean> stack = new Stack<>();
    private UCFPackage ucfPackage;
    private Map<URI, WorkflowBean> uriToBean = new HashMap<>();
    private Map<Processor, ObjectNode> dispatchConfigs = new HashMap<>();

    public Map<WorkflowBean, URI> getBeanToUri() {
        return beanToUri;
    }

    public <T extends WorkflowBean> T getCurrent(Class<T> beanType) {
        if (getStack().isEmpty())
            throw new IllegalStateException("Parser stack is empty");
        if (beanType.isInstance(getStack().peek()))
            return beanType.cast(getStack().peek());
        T candidate = null;
        for (WorkflowBean bean : getStack())
            if (beanType.isInstance(bean))
                // Don't return - we want the *last* candidate
                candidate = beanType.cast(bean);
        if (candidate == null)
            throw new IllegalStateException("Could not find a " + beanType + " on parser stack");
        return candidate;
    }

    public URI getCurrentBase() {
        return currentBase;
    }

    public URI getLocation() {
        return location;
    }

    public Stack<WorkflowBean> getStack() {
        return stack;
    }

    public UCFPackage getUcfPackage() {
        return ucfPackage;
    }

    public Map<URI, WorkflowBean> getUriToBean() {
        return uriToBean;
    }

    public WorkflowBean peek() {
        return getStack().peek();
    }

    public WorkflowBean pop() {
        return getStack().pop();
    }

    public void push(WorkflowBean workflowBean) {
        getStack().push(workflowBean);
    }

    public void setBeanToUri(Map<WorkflowBean, URI> beanToUri) {
        this.beanToUri = beanToUri;
    }

    public void setCurrentBase(URI currentBase) {
        this.currentBase = currentBase;
    }

    public void setLocation(URI location) {
        this.location = location;
    }

    public void setStack(Stack<WorkflowBean> currentIterationStrategyNode) {
        stack = currentIterationStrategyNode;
    }

    public void setUcfPackage(UCFPackage ucfPackage) {
        this.ucfPackage = ucfPackage;
    }

    public void setUriToBean(Map<URI, WorkflowBean> uriToBean) {
        this.uriToBean = uriToBean;
    }

    public Map<Processor, ObjectNode> getDispatchConfigs() {
        return dispatchConfigs;
    }

    public void setDispatchConfigs(Map<Processor, ObjectNode> dispatchConfigs) {
        this.dispatchConfigs = dispatchConfigs;
    }
}