protected boolean isStoredInValue(final String propertyName, final SchemaElementDefinition elementDef) { return !elementDef.getGroupBy().contains(propertyName) && !propertyName.equals(schema.getVisibilityProperty()) && !propertyName.equals(timestampProperty); }
public RetrieveElementsFromFile(final Path filePath, final FilterPredicate filter, final Schema gafferSchema, final ConcurrentLinkedQueue<Element> queue, final boolean needsValidatorsAndFiltersApplying, final boolean skipValidation, final View view, final User user) { this.filePath = filePath; this.filter = filter; this.jsonGafferSchema = gafferSchema.toCompactJson(); this.gafferSchema = gafferSchema; if (gafferSchema.getVisibilityProperty() != null) { this.visibility = gafferSchema.getVisibilityProperty(); } else { this.visibility = new String(); } if (user != null && user.getDataAuths() != null) { final Set<String> dataAuths = user.getDataAuths(); this.auths = new Authorisations(dataAuths.toArray(new String[dataAuths.size()])); } else { this.auths = new Authorisations(); } this.queue = queue; this.view = view; this.needsValidatorsAndFiltersApplying = needsValidatorsAndFiltersApplying; this.skipValidation = skipValidation; if (filePath.getName().contains("=")) { group = filePath.getName().split("=")[1]; } else { group = filePath.getParent().getName().split("=")[1]; } elementDefinitionJson = view.getElement(group).toCompactJson(); }
@Override public Properties getPropertiesFromColumnVisibility(final String group, final byte[] columnVisibility) { final Properties properties = new Properties(); final SchemaElementDefinition elementDefinition = getSchemaElementDefinition(group); if (null != schema.getVisibilityProperty()) { final TypeDefinition propertyDef = elementDefinition.getPropertyTypeDef(schema.getVisibilityProperty()); if (null != propertyDef) { final ToBytesSerialiser serialiser = (ToBytesSerialiser) propertyDef.getSerialiser(); try { if (null == columnVisibility || columnVisibility.length == 0) { final Object value = serialiser.deserialiseEmpty(); if (null != value) { properties.put(schema.getVisibilityProperty(), value); } } else { properties.put(schema.getVisibilityProperty(), serialiser.deserialise(columnVisibility)); } } catch (final SerialisationException e) { throw new AccumuloElementConversionException(e.getMessage(), e); } } } return properties; }
@Override public byte[] buildColumnVisibility(final String group, final Properties properties) { byte[] rtn = AccumuloStoreConstants.EMPTY_BYTES; final SchemaElementDefinition elementDefinition = getSchemaElementDefinition(group); if (null != schema.getVisibilityProperty()) { final TypeDefinition propertyDef = elementDefinition.getPropertyTypeDef(schema.getVisibilityProperty()); if (null != propertyDef) { final Object property = properties.get(schema.getVisibilityProperty()); final ToBytesSerialiser serialiser = (ToBytesSerialiser) propertyDef.getSerialiser(); if (null != property) { try { rtn = serialiser.serialise(property); } catch (final SerialisationException e) { throw new AccumuloElementConversionException(e.getMessage(), e); } } else { rtn = serialiser.serialiseNull(); } } } return rtn; }
@Override public Dataset<Row> doOperation(final GetDataFrameOfElements operation, final Context context, final Store store) throws OperationException { final SparkSession spark = SparkContextUtil.getSparkSession(context, store.getProperties()); final User user = context.getUser(); final Authorisations auths; final String visibility; if (user != null && user.getDataAuths() != null) { auths = new Authorisations(user.getDataAuths().toArray(new String[user.getDataAuths().size()])); } else { auths = new Authorisations(); } if (store.getSchema().getVisibilityProperty() != null) { visibility = store.getSchema().getVisibilityProperty(); } else { visibility = new String(); } return doOperation(operation, (ParquetStore) store, spark, auths, visibility); }
@Override public Object getProperty(final String name, final Properties lazyProperties) { if (null == eDef) { eDef = schema.getElement(group); if (null == eDef) { throw new IllegalArgumentException("Element definition for " + group + " could not be found in the schema"); } } final Properties props; if (eDef.getGroupBy().contains(name)) { props = elementConverter.getPropertiesFromColumnQualifier(group, key.getColumnQualifierData().getBackingArray()); } else if (name.equals(schema.getVisibilityProperty())) { props = elementConverter.getPropertiesFromColumnVisibility(group, key.getColumnVisibilityData().getBackingArray()); } else if (name.equals(timestampProperty)) { props = elementConverter.getPropertiesFromTimestamp(group, key.getTimestamp()); } else { props = elementConverter.getPropertiesFromValue(group, value); } lazyProperties.putAll(props); return props.get(name); } }
String visibilityProp = schema.getVisibilityProperty(); for (final String edgeGroup : view.getEdgeGroups()) { SchemaEdgeDefinition edgeDefinition = schema.getEdge(edgeGroup);