⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profileimpl.java

📁 开发owl的API,提供了W3C规定标准接口,是目前比较少的API.
💻 JAVA
字号:
// The MIT License
//
// Copyright (c) 2004 Evren Sirin
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.

/*
 * Created on Dec 27, 2003
 *
 */
package org.mindswap.owls.profile.impl;

import java.net.URI;
import java.util.List;

import org.mindswap.owl.OWLResource;
import org.mindswap.owl.impl.OWLResourceImpl;
import org.mindswap.owls.OWLSFactory;
import org.mindswap.owls.process.ConditionList;
import org.mindswap.owls.process.EffectList;
import org.mindswap.owls.process.InputList;
import org.mindswap.owls.process.OutputList;
import org.mindswap.owls.process.Process;
import org.mindswap.owls.profile.Actor;
import org.mindswap.owls.profile.Profile;
import org.mindswap.owls.profile.ServiceCategory;
import org.mindswap.owls.profile.ServiceParameter;
import org.mindswap.owls.service.Service;
import org.mindswap.owls.vocabulary.OWLS;

import com.hp.hpl.jena.rdf.model.Resource;

/**
 * @author Evren Sirin
 *
 */
public class ProfileImpl extends OWLResourceImpl implements Profile {
	Service service;
	URI     type;

	InputList inputs;
	OutputList outputs;
	ConditionList preconditions;
	EffectList effects;
	
	/**
	 * @param resource
	 */
	public ProfileImpl(Resource resource) {
		super(resource);
		
		inputs = OWLSFactory.createInputList();
		outputs = OWLSFactory.createOutputList();
		preconditions = OWLSFactory.createConditionList();
		effects = OWLSFactory.createEffectList();			
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getService()
	 */
	public Service getService() {
		return service;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getTextDescription()
	 */
	public void setTextDescription(String desc) {
		setDataProperty(getVocabulary().getProfile().textDescription, desc);
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getTextDescription()
	 */
	public String getTextDescription() {
		return getDataProperty(getVocabulary().getProfile().textDescription);
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getTextDescription(java.lang.String)
	 */
	public String getTextDescription(String lang) {
		return getDataProperty(getVocabulary().getProfile().textDescription, lang);
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getInputs()
	 */
	public InputList getInputs() {
		return inputs;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getOutputs()
	 */
	public OutputList getOutputs() {
		return outputs;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getPreconditions()
	 */
	public ConditionList getPreconditions() {
		return preconditions;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getEffects()
	 */
	public EffectList getEffects() {
		return effects;
	}
	
	public Process getProcess() {
		return service.getProcess();
	}

	/**
	 * @param service
	 */
	public void setService(Service service) {
		this.service = service;
		if(service.getProfile() != this)
			service.setProfile(this);
	}
	
	private OWLS getVocabulary() {
		if(service != null)
			return OWLSFactory.getVocabulary(service.getOWLSVersion());
		
		return OWLSFactory.getVocabulary();
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getType()
	 */
	public URI getType() {		
		if(type == null)
			type = getVocabulary().getProfile().Profile;
		
		return type;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#setType(java.lang.String)
	 */
	public void setType(URI type) {
		this.type = type;		
	}

	public String debugString() {
		String str = getLabel() + "  " + getURI() + " " + getType()  + "\n";
		for(int i = 0; i < inputs.size(); i++)
			str += inputs.inputAt(i).debugString() + "\n";
		for(int i = 0; i < outputs.size(); i++)
			str += outputs.outputAt(i).debugString() + "\n";
		
		return str;
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getCategory()
	 */
	public ServiceCategory getCategory() {
		OWLResource sp = getProperty(getVocabulary().getProfile().serviceCategory);
		
		return sp == null ? null : new ServiceCategoryImpl(sp.getJenaResource(), getVocabulary());
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getServiceParameters()
	 */
	public List getServiceParameters() {
		throw new RuntimeException("Not implemented yet!");
	}


	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getContactInfo()
	 */
	public Actor getContactInfo() {
		throw new RuntimeException("Not implemented yet!");
	}

	/* (non-Javadoc)
	 * @see org.mindswap.owls.profile.Profile#getServiceParameter(java.net.URI)
	 */
	public ServiceParameter getServiceParameter(URI prop) {
		OWLResource sp = getProperty(prop);
		
		return sp == null ? null : new ServiceParameterImpl(sp.getJenaResource(), getVocabulary());
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -