/** * Determines if the edge key matches the desired date type.<br> * <strong>note:</strong> Some edges qualify as both an event and an activity edge. Hence, can't simply negate the return value of isEventEdge or * isActivityEdge. * * @param k * @param V * @return boolean - true if it is a match. */ @Override public boolean accept(Key k, Value V) { return (state[EdgeKey.getDateType(k).ordinal()]); }
/** * Creates an edge table key from the various EdgeKey fields. * * @return a key for the Datawave edge table */ public Key encode() { if (this.getDateType() == DATE_TYPE.OLD_EVENT) { return encodeLegacyProtobufKey(); } else { if (this.getFormat() == EDGE_FORMAT.STATS) { return encode(EDGE_VERSION.DATE_STATS_PROTOBUF); } else if (this.getFormat() == EDGE_FORMAT.STANDARD) { return encode(EDGE_VERSION.DATE_PROTOBUF); } else { // EDGE_FORMAT.UNKNOWN throw new IllegalStateException("Can't encode unknown edge key format." + this); } } }
parts.set(version.getDateTypeIndex(), this.getDateType().toString());
private EdgeKeyBuilder(EdgeKey key) { escape = false; format = key.getFormat(); statsType = key.getStatsType(); sourceData = key.getSourceData(); sinkData = key.getSinkData(); type = key.getType(); unescape = false; sourceRelationship = key.getSourceRelationship(); sinkRelationship = key.getSinkRelationship(); sourceAttribute1 = key.getSourceAttribute1(); sinkAttribute1 = key.getSinkAttribute1(); attribute2 = key.getAttribute2(); attribute3 = key.getAttribute3(); yyyymmdd = key.getYyyymmdd(); dateType = key.getDateType(); colvis = new Text(key.getColvis()); timestamp = key.getTimestamp(); deleted = key.isDeleted(); }
edge.setEdgeAttribute1Source(edgeKey.getAttribute1()); if (edgeKey.getDateType() == EdgeKey.DATE_TYPE.ACTIVITY_ONLY || edgeKey.getDateType() == EdgeKey.DATE_TYPE.ACTIVITY_AND_EVENT) { edge.setActivityDate(edgeKey.getYyyymmdd());