Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright (c) 2009 University of Tartu
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.jpmml.manager;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import com.google.common.collect.Lists;
import org.dmg.pmml.DataDictionary;
import org.dmg.pmml.DataField;
import org.dmg.pmml.DefineFunction;
import org.dmg.pmml.DerivedField;
import org.dmg.pmml.FieldName;
import org.dmg.pmml.HasName;
import org.dmg.pmml.Header;
import org.dmg.pmml.Model;
import org.dmg.pmml.PMML;
import org.dmg.pmml.PMMLObject;
import org.dmg.pmml.TransformationDictionary;
import static com.google.common.base.Preconditions.checkNotNull;
public class PMMLManager implements Serializable {
private PMML pmml = null;
public PMMLManager(PMML pmml){
setPMML(pmml);
}
public DataField getDataField(FieldName name){
DataDictionary dataDictionary = getDataDictionary();
List dataFields = dataDictionary.getDataFields();
return find(dataFields, name);
}
public DerivedField getDerivedField(FieldName name){
TransformationDictionary transformationDictionary = getTransformationDictionary();
if(transformationDictionary == null){
return null;
}
List derivedFields = transformationDictionary.getDerivedFields();
return find(derivedFields, name);
}
public DefineFunction getFunction(String name){
TransformationDictionary transformationDictionary = getTransformationDictionary();
if(transformationDictionary == null){
return null;
}
List defineFunctions = transformationDictionary.getDefineFunctions();
for(DefineFunction defineFunction : defineFunctions){
if((defineFunction.getName()).equals(name)){
return defineFunction;
}
}
return null;
}
public PMML getPMML(){
return this.pmml;
}
private void setPMML(PMML pmml){
this.pmml = checkNotNull(pmml);
}
public Header getHeader(){
PMML pmml = getPMML();
return checkNotNull(pmml.getHeader());
}
public DataDictionary getDataDictionary(){
PMML pmml = getPMML();
return checkNotNull(pmml.getDataDictionary());
}
public TransformationDictionary getTransformationDictionary(){
PMML pmml = getPMML();
return pmml.getTransformationDictionary();
}
public List getModels(){
PMML pmml = getPMML();
return pmml.getModels();
}
/**
* @param modelName The name of the Model to be selected. If null, the first model is selected.
*
* @see Model#getModelName()
*/
public Model getModel(String modelName){
List models = getModels();
for(Model model : models){
if(modelName == null || (modelName).equals(model.getModelName())){
return model;
}
}
return null;
}
public ModelManager extends Model> getModelManager(ModelManagerFactory modelManagerFactory){
return getModelManager(null, modelManagerFactory);
}
public ModelManager extends Model> getModelManager(String modelName, ModelManagerFactory modelManagerFactory){
Model model = getModel(modelName);
return modelManagerFactory.getModelManager(getPMML(), model);
}
@SuppressWarnings (
value = {"unchecked"}
)
static
public E find(List> objects, Class extends E> clazz){
for(Object object : objects){
if((object.getClass()).equals(clazz)){
return (E)object;
}
}
return null;
}
@SuppressWarnings (
value = {"unchecked"}
)
static
public List findAll(List> objects, Class extends E> clazz){
List result = Lists.newArrayList();
for(Object object : objects){
if((object.getClass()).equals(clazz)){
result.add((E)object);
}
}
return result;
}
static
public E find(Collection objects, FieldName name){
for(E object : objects){
if((object.getName()).equals(name)){
return object;
}
}
return null;
}
}