
prerna.sablecc2.om.nounmeta.NounMetadata Maven / Gradle / Ivy
The newest version!
package prerna.sablecc2.om.nounmeta;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import com.google.gson.Gson;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.util.gson.GsonUtility;
public class NounMetadata implements Serializable{
Object value;
PixelDataType noun;
List opType = new Vector();
String explanation = "";
List additionalReturns = new Vector();
/**
* Default constructor for preset nouns
*/
NounMetadata() {
}
public NounMetadata(Object value, PixelDataType noun) {
this(value, noun, PixelOperationType.OPERATION);
}
public NounMetadata(Object value, PixelDataType noun, PixelOperationType opType) {
this.noun = noun;
this.value = value;
this.opType.add(opType);
}
public NounMetadata(Object value, PixelDataType noun, PixelOperationType... opType) {
this.noun = noun;
this.value = value;
for(PixelOperationType op : opType) {
this.opType.add(op);
}
}
public NounMetadata(Object value, PixelDataType noun, List opType) {
this.noun = noun;
this.value = value;
this.opType.addAll(opType);
}
public Object getValue() {
return this.value;
}
public PixelDataType getNounType() {
return this.noun;
}
public List getOpType() {
return this.opType;
}
public void addAdditionalOpTypes(PixelOperationType... opType) {
for(PixelOperationType op : opType) {
this.opType.add(op);
}
}
public void addAdditionalOpTypes(List opType) {
this.opType.addAll(opType);
}
public void addAdditionalReturn(NounMetadata noun) {
this.additionalReturns.add(noun);
}
public void addAllAdditionalReturn(Collection nouns) {
this.additionalReturns.addAll(nouns);
}
public List getAdditionalReturn() {
return this.additionalReturns;
}
public void setExplanation(String explanation) {
this.explanation = explanation;
}
public String getExplanation() {
return this.explanation;
}
/**
* To help w/ debugging
*/
public String toString() {
return "NOUN META DATA ::: " + this.value + "";
}
public NounMetadata copy() {
// I cannot copy a null noun
if(this.noun == PixelDataType.NULL_VALUE) {
return this;
}
Gson gson = GsonUtility.getDefaultGson();
String str = gson.toJson(this);
NounMetadata n = gson.fromJson(str, NounMetadata.class);
return n;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
/*
* Static noun constructors
*/
/**
* Utility to get back a noun metadata with a warning message
* @param message
* @param additionalOps The default op type will be warning but can add additional ones
* @return
*/
public static NounMetadata getSuccessNounMessage(String message, PixelOperationType... additionalOps) {
NounMetadata noun = new NounMetadata(message, PixelDataType.CONST_STRING, PixelOperationType.SUCCESS);
noun.addAdditionalOpTypes(additionalOps);
return noun;
}
/**
* Utility to get back a noun metadata with a warning message
* @param message
* @param additionalOps The default op type will be warning but can add additional ones
* @return
*/
public static NounMetadata getWarningNounMessage(String message, PixelOperationType... additionalOps) {
NounMetadata noun = new NounMetadata(message, PixelDataType.CONST_STRING, PixelOperationType.WARNING);
noun.addAdditionalOpTypes(additionalOps);
return noun;
}
/**
* Utility to get back a noun metadata with an error message
* @param message
* @param additionalOps The default op type will be error but can add additional ones
* @return
*/
public static NounMetadata getErrorNounMessage(String message, PixelOperationType... additionalOps) {
NounMetadata noun = new NounMetadata(message, PixelDataType.ERROR, PixelOperationType.ERROR);
noun.addAdditionalOpTypes(additionalOps);
return noun;
}
/**
* Utility to get back a noun metadata with an error message
* @param details
* @param additionalOps The default op type will be error but can add additional ones
* @return
*/
public static NounMetadata getErrorNounMessage(Map details, PixelOperationType... additionalOps) {
NounMetadata noun = new NounMetadata(details, PixelDataType.ERROR, PixelOperationType.ERROR);
noun.addAdditionalOpTypes(additionalOps);
return noun;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy