
io.shiftleft.codepropertygraph.cpgloading.ProtoNodeSerializer Maven / Gradle / Ivy
//package io.shiftleft.codepropertygraph.cpgloading;
//
//import gnu.trove.map.hash.THashMap;
//import gnu.trove.set.TLongSet;
//import io.shiftleft.proto.cpg.Cpg;
//import org.apache.commons.lang.NotImplementedException;
//import org.apache.tinkerpop.gremlin.structure.Direction;
//import org.apache.tinkerpop.gremlin.tinkergraph.storage.Serializer;
//
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Set;
//
//public class ProtoNodeSerializer extends Serializer {
//
// //NodeId -> EdgeLabel -> EdgeId
// private final Map> inEdgesByNodeId;
// private final Map> outEdgesByNodeId;
//
// public ProtoNodeSerializer(Map> inEdgesByNodeId, Map> outEdgesByNodeId) {
// this.inEdgesByNodeId = inEdgesByNodeId;
// this.outEdgesByNodeId = outEdgesByNodeId;
// }
//
// @Override
// protected long getId(Cpg.CpgStruct.Node node) {
// return node.getKey();
// }
//
// @Override
// protected String getLabel(Cpg.CpgStruct.Node node) {
// return node.getType().name();
// }
//
// @Override
// protected Map getProperties(Cpg.CpgStruct.Node node) {
// final Map propertyMap = new THashMap<>(node.getPropertyCount());
// for (Cpg.CpgStruct.Node.Property property : node.getPropertyList()) {
// final String key = property.getName().name();
// final Cpg.PropertyValue propertyValue = property.getValue();
// switch (propertyValue.getValueCase()) {
// case INT_VALUE:
// propertyMap.put(key, propertyValue.getIntValue());
// break;
// case STRING_VALUE:
// propertyMap.put(key, propertyValue.getStringValue());
// break;
// case BOOL_VALUE:
// propertyMap.put(key, propertyValue.getBoolValue());
// break;
// case STRING_LIST:
// propertyMap.put(key, propertyValue.getStringList().getValuesList());
// break;
// case VALUE_NOT_SET:
// break;
// default:
// throw new RuntimeException("Error: unsupported property case: " + propertyValue.getValueCase().name());
// }
// }
// return propertyMap;
// }
//
// @Override
// protected Map getEdgeIds(Cpg.CpgStruct.Node node, Direction direction) {
// final Set edges;
// switch (direction) {
// case IN:
// return inEdgesByNodeId.getOrDefault(node.getKey(), new HashMap(0));
// case OUT:
// return outEdgesByNodeId.getOrDefault(node.getKey(), new HashMap(0));
// default:
// throw new NotImplementedException();
// }
// }
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy