
prerna.reactor.database.metaeditor.GetOwlLogicalNamesReactor Maven / Gradle / Ivy
The newest version!
package prerna.reactor.database.metaeditor;
import java.util.Set;
import prerna.engine.api.IDatabaseEngine;
import prerna.sablecc2.om.GenRowStruct;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.Utility;
public class GetOwlLogicalNamesReactor extends AbstractMetaEditorReactor {
public GetOwlLogicalNamesReactor() {
this.keysToGet = new String[]{ReactorKeysEnum.DATABASE.getKey(), ReactorKeysEnum.CONCEPT.getKey(), ReactorKeysEnum.COLUMN.getKey()};
}
@Override
public NounMetadata execute() {
String databaseId = getDatabaseId();
// we may have an alias
databaseId = testDatabaseId(databaseId, true);
String concept = getConcept();
String prop = getProperty();
IDatabaseEngine database = Utility.getDatabase(databaseId);
String physicalUri = null;
if(prop == null || prop.isEmpty()) {
physicalUri = database.getPhysicalUriFromPixelSelector(concept);
} else {
physicalUri = database.getPhysicalUriFromPixelSelector(concept + "__" + prop);
}
Set logicalNames = database.getLogicalNames(physicalUri);
NounMetadata noun = new NounMetadata(logicalNames, PixelDataType.CONST_STRING, PixelOperationType.ENTITY_LOGICAL_NAMES);
return noun;
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////// GRAB INPUTS FROM PIXEL REACTOR //////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
private String getDatabaseId() {
GenRowStruct grs = this.store.getNoun(keysToGet[0]);
if (grs != null && !grs.isEmpty()) {
String id = (String) grs.get(0);
if (id != null && !id.isEmpty()) {
return id;
}
}
throw new IllegalArgumentException("Need to define " + keysToGet[0]);
}
private String getConcept() {
GenRowStruct grs = this.store.getNoun(keysToGet[1]);
if (grs != null && !grs.isEmpty()) {
String concept = (String) grs.get(0);
if (concept != null && !concept.isEmpty()) {
return concept;
}
}
throw new IllegalArgumentException("Need to define " + keysToGet[1]);
}
private String getProperty() {
GenRowStruct grs = this.store.getNoun(keysToGet[2]);
if (grs != null && !grs.isEmpty()) {
String prop = (String) grs.get(0);
if (prop != null && !prop.isEmpty()) {
return prop;
}
}
return "";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy