List<String> parts = new ArrayList<>(version.getTotalColPieces()); for (int ii = 0; ii < version.getTotalColPieces(); ii++) { parts.add("null"); rowsb.append(this.getSourceData()); parts.set(0, STATS_COLF); parts.set(version.getStatsTypeIndex(), this.getStatsType().name()); } else if (this.format == EDGE_FORMAT.STANDARD) { rowsb.append(this.getSourceData()).append("\0").append(this.getSinkData()); parts.set(version.getTypeIndex(), this.getType()); parts.set(version.getRelationshipIndex(), this.getRelationship()); parts.set(version.getCategoryIndex(), this.getAttribute1()); parts.set(version.getYMDIndex(), this.getYyyymmdd()); if (version.hasAttribute2()) { parts.set(version.getAttribute2Index(), this.getAttribute2()); if (version.hasAttribute3()) { parts.set(version.getAttribute3Index(), this.getAttribute3()); if (version.getDateTypeIndex() >= 0) { parts.set(version.getDateTypeIndex(), this.getDateType().toString()); for (int ii = 1; ii < version.getNumColfPieces(); ii++) { colsb.append(COL_SEPARATOR).append(parts.get(ii)); colsb = new StringBuilder(parts.get(version.getNumColfPieces())); for (int ii = version.getNumColfPieces() + 1; ii < version.getTotalColPieces(); ii++) { colsb.append(COL_SEPARATOR).append(parts.get(ii));
EDGE_VERSION version = EDGE_VERSION.getEdgeVersion(parts); builder.setType(parts.get(version.getTypeIndex())); builder.setYyyymmdd(parts.get(version.getYMDIndex())); if (version.getFormat() == EDGE_FORMAT.STATS) { builder.setStatsType(version.getStatsType(parts)); builder.setSourceRelationship(parts.get(version.getRelationshipIndex())); builder.setSourceAttribute1(parts.get(version.getCategoryIndex())); } else { String[] subPieces = StringUtils.splitPreserveAllTokens(parts.get(version.getRelationshipIndex()), COL_SUB_SEPARATOR); builder.setSourceRelationship(subPieces[0]); builder.setSinkRelationship(subPieces[1]); subPieces = StringUtils.splitPreserveAllTokens(parts.get(version.getCategoryIndex()), COL_SUB_SEPARATOR); builder.setSourceAttribute1(subPieces[0]); builder.setSinkAttribute1(subPieces[1]); if (version.hasAttribute2()) { builder.setAttribute2(parts.get(version.getAttribute2Index())); if (version.hasAttribute3()) { builder.setAttribute3(parts.get(version.getAttribute3Index())); if (version.getDateTypeIndex() >= 0) { builder.setDateType(DATE_TYPE.parse(parts.get(version.getDateTypeIndex())));
/** * Determine as fast as possible the date type of an edge key without having to decode into and EdgeKey * * @param key * @return the date type of this accumulo edge key */ public static DATE_TYPE getDateType(Key key) { EdgeColumnParts parts = new EdgeColumnParts(key); EDGE_VERSION version = EDGE_VERSION.getEdgeVersion(parts); if (version == EDGE_VERSION.DATE_STATS_PROTOBUF) { return DATE_TYPE.parse(parts.get(8)); } else if (version == EDGE_VERSION.DATE_PROTOBUF) { return DATE_TYPE.parse(parts.get(6)); } else { return DATE_TYPE.OLD_EVENT; } } }