public static String getStringConstant(IAObject iaObject) { // Make sure to call this method after checking the type of the given object. return iaObject != null ? ((AString) iaObject).getStringValue() : null; }
@Override public boolean equals(Object obj) { if (!(obj instanceof AString)) { return false; } return value.equals(((AString) obj).getStringValue()); }
public static String getStringConstant(ILogicalExpression expr) { final IAObject iaObject = getConstantIaObject(expr, ATypeTag.STRING); return iaObject != null ? ((AString) iaObject).getStringValue() : null; }
private CompactionPolicy createCompactionPolicyFromARecord(ARecord compactionPolicyRecord) { CompactionPolicy compactionPolicy = null; String dataverseName = ((AString) compactionPolicyRecord .getValueByPos(MetadataRecordTypes.COMPACTION_POLICY_ARECORD_DATAVERSE_NAME_FIELD_INDEX)) .getStringValue(); String policyName = ((AString) compactionPolicyRecord .getValueByPos(MetadataRecordTypes.COMPACTION_POLICY_ARECORD_POLICY_NAME_FIELD_INDEX)).getStringValue(); String className = ((AString) compactionPolicyRecord .getValueByPos(MetadataRecordTypes.COMPACTION_POLICY_ARECORD_CLASSNAME_FIELD_INDEX)).getStringValue(); compactionPolicy = new CompactionPolicy(dataverseName, policyName, className); return compactionPolicy; }
private Library createLibraryFromARecord(ARecord libraryRecord) { String dataverseName = ((AString) libraryRecord.getValueByPos(MetadataRecordTypes.LIBRARY_ARECORD_DATAVERSENAME_FIELD_INDEX)) .getStringValue(); String libraryName = ((AString) libraryRecord.getValueByPos(MetadataRecordTypes.LIBRARY_ARECORD_NAME_FIELD_INDEX)) .getStringValue(); return new Library(dataverseName, libraryName); }
@Override public void serialize(AString instance, DataOutput out) throws HyracksDataException { try { UTF8StringUtil.writeUTF8(instance.getStringValue(), out, utf8StringWriter); } catch (IOException e) { throw HyracksDataException.create(e); } }
private DatasourceAdapter createAdapterFromARecord(ARecord adapterRecord) { String dataverseName = ((AString) adapterRecord .getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX)) .getStringValue(); String adapterName = ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX)) .getStringValue(); String classname = ((AString) adapterRecord .getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_CLASSNAME_FIELD_INDEX)).getStringValue(); IDataSourceAdapter.AdapterType adapterType = IDataSourceAdapter.AdapterType.valueOf( ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX)) .getStringValue()); return new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName), classname, adapterType); }
protected Map<String, String> getDatasetHints(ARecord datasetRecord) { Map<String, String> hints = new HashMap<>(); String key; String value; AUnorderedList list = (AUnorderedList) datasetRecord.getValueByPos(MetadataRecordTypes.DATASET_ARECORD_HINTS_FIELD_INDEX); IACursor cursor = list.getCursor(); while (cursor.next()) { ARecord field = (ARecord) cursor.get(); key = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_NAME_FIELD_INDEX)).getStringValue(); value = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_VALUE_FIELD_INDEX)).getStringValue(); hints.put(key, value); } return hints; }
private FeedPolicyEntity createFeedPolicyFromARecord(ARecord feedPolicyRecord) { FeedPolicyEntity feedPolicy = null; String dataverseName = ((AString) feedPolicyRecord .getValueByPos(MetadataRecordTypes.FEED_POLICY_ARECORD_DATAVERSE_NAME_FIELD_INDEX)).getStringValue(); String policyName = ((AString) feedPolicyRecord .getValueByPos(MetadataRecordTypes.FEED_POLICY_ARECORD_POLICY_NAME_FIELD_INDEX)).getStringValue(); String description = ((AString) feedPolicyRecord .getValueByPos(MetadataRecordTypes.FEED_POLICY_ARECORD_DESCRIPTION_FIELD_INDEX)).getStringValue(); IACursor cursor = ((AUnorderedList) feedPolicyRecord .getValueByPos(MetadataRecordTypes.FEED_POLICY_ARECORD_PROPERTIES_FIELD_INDEX)).getCursor(); Map<String, String> policyParamters = new HashMap<>(); String key; String value; while (cursor.next()) { ARecord field = (ARecord) cursor.get(); key = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_NAME_FIELD_INDEX)).getStringValue(); value = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_VALUE_FIELD_INDEX)).getStringValue(); policyParamters.put(key, value); } feedPolicy = new FeedPolicyEntity(dataverseName, policyName, description, policyParamters); return feedPolicy; }
private Feed createFeedFromARecord(ARecord feedRecord) { Feed feed; String dataverseName = ((AString) feedRecord.getValueByPos(MetadataRecordTypes.FEED_ARECORD_DATAVERSE_NAME_FIELD_INDEX)) .getStringValue(); String feedName = ((AString) feedRecord.getValueByPos(MetadataRecordTypes.FEED_ARECORD_FEED_NAME_FIELD_INDEX)) .getStringValue(); AUnorderedList feedConfig = (AUnorderedList) feedRecord.getValueByPos(MetadataRecordTypes.FEED_ARECORD_ADAPTOR_CONFIG_INDEX); IACursor cursor = feedConfig.getCursor(); // restore configurations String key; String value; Map<String, String> adaptorConfiguration = new HashMap<>(); while (cursor.next()) { ARecord field = (ARecord) cursor.get(); key = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_NAME_FIELD_INDEX)).getStringValue(); value = ((AString) field.getValueByPos(MetadataRecordTypes.PROPERTIES_VALUE_FIELD_INDEX)).getStringValue(); adaptorConfiguration.put(key, value); } feed = new Feed(dataverseName, feedName, adaptorConfiguration); return feed; }
@Override public Dataverse getMetadataEntityFromTuple(ITupleReference frameTuple) throws HyracksDataException { byte[] serRecord = frameTuple.getFieldData(DATAVERSE_PAYLOAD_TUPLE_FIELD_INDEX); int recordStartOffset = frameTuple.getFieldStart(DATAVERSE_PAYLOAD_TUPLE_FIELD_INDEX); int recordLength = frameTuple.getFieldLength(DATAVERSE_PAYLOAD_TUPLE_FIELD_INDEX); ByteArrayInputStream stream = new ByteArrayInputStream(serRecord, recordStartOffset, recordLength); DataInput in = new DataInputStream(stream); ARecord dataverseRecord = recordSerDes.deserialize(in); return new Dataverse(((AString) dataverseRecord.getValueByPos(0)).getStringValue(), ((AString) dataverseRecord.getValueByPos(1)).getStringValue(), ((AInt32) dataverseRecord.getValueByPos(3)).getIntegerValue()); }
private boolean setFieldNameSet(ILogicalExpression expr, Set<String> fieldNameSet) { if (expr.getExpressionTag() == LogicalExpressionTag.CONSTANT) { AOrderedList orderedList = (AOrderedList) (((AsterixConstantValue) ((ConstantExpression) expr).getValue()).getObject()); for (int i = 0; i < orderedList.size(); i++) { AString as = (AString) orderedList.getItem(i); fieldNameSet.add(as.getStringValue()); } return true; // Success } return false; }
@Override public NodeGroup getMetadataEntityFromTuple(ITupleReference frameTuple) throws HyracksDataException { byte[] serRecord = frameTuple.getFieldData(NODEGROUP_PAYLOAD_TUPLE_FIELD_INDEX); int recordStartOffset = frameTuple.getFieldStart(NODEGROUP_PAYLOAD_TUPLE_FIELD_INDEX); int recordLength = frameTuple.getFieldLength(NODEGROUP_PAYLOAD_TUPLE_FIELD_INDEX); ByteArrayInputStream stream = new ByteArrayInputStream(serRecord, recordStartOffset, recordLength); DataInput in = new DataInputStream(stream); ARecord nodeGroupRecord = recordSerDes.deserialize(in); String gpName = ((AString) nodeGroupRecord.getValueByPos(MetadataRecordTypes.NODEGROUP_ARECORD_GROUPNAME_FIELD_INDEX)) .getStringValue(); IACursor cursor = ((AUnorderedList) nodeGroupRecord .getValueByPos(MetadataRecordTypes.NODEGROUP_ARECORD_NODENAMES_FIELD_INDEX)).getCursor(); List<String> nodeNames = new ArrayList<>(); while (cursor.next()) { nodeNames.add(((AString) cursor.get()).getStringValue()); } return new NodeGroup(gpName, nodeNames); }
public static String aObjToString(IAObject aObj) throws AlgebricksException { switch (aObj.getType().getTypeTag()) { case DOUBLE: return Double.toString(((ADouble) aObj).getDoubleValue()); case BIGINT: return Long.toString(((AInt64) aObj).getLongValue()); case ARRAY: return aOrderedListToString((AOrderedList) aObj); case STRING: return ((AString) aObj).getStringValue(); case BOOLEAN: return ((ABoolean) aObj).getBoolean().toString(); default: throw new AlgebricksException("value of type " + aObj.getType() + " is not supported yet"); } }
private ExternalFile createExternalFileFromARecord(ARecord externalFileRecord) { String dataverseName = ((AString) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_DATAVERSENAME_FIELD_INDEX)).getStringValue(); String datasetName = ((AString) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_DATASET_NAME_FIELD_INDEX)).getStringValue(); int fileNumber = ((AInt32) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_NUMBER_FIELD_INDEX)).getIntegerValue(); String fileName = ((AString) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_NAME_FIELD_INDEX)).getStringValue(); long fileSize = ((AInt64) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_SIZE_FIELD_INDEX)).getLongValue(); Date lastMoDifiedDate = new Date(((ADateTime) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_MOD_DATE_FIELD_INDEX)).getChrononTime()); ExternalFilePendingOp pendingOp = ExternalFilePendingOp.values()[((AInt32) externalFileRecord .getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_PENDING_OP_FIELD_INDEX)) .getIntegerValue()]; return new ExternalFile(dataverseName, datasetName, fileNumber, fileName, lastMoDifiedDate, fileSize, pendingOp); }
private String getCompressionScheme(ARecord datasetRecord) { final ARecordType datasetType = datasetRecord.getType(); final int compressionIndex = datasetType .getFieldIndex(MetadataRecordTypes.DATASET_ARECORD_BLOCK_LEVEL_STORAGE_COMPRESSION_FIELD_NAME); if (compressionIndex >= 0) { final ARecordType compressionType = (ARecordType) datasetType.getFieldTypes()[compressionIndex]; final int schemeIndex = compressionType .getFieldIndex(MetadataRecordTypes.DATASET_ARECORD_DATASET_COMPRESSION_SCHEME_FIELD_NAME); return ((AString) datasetRecord.getValueByPos(schemeIndex)).getStringValue(); } return CompressionManager.NONE; }
protected String getString(List<Mutable<ILogicalExpression>> args, int i) throws AlgebricksException { ConstantExpression ce = (ConstantExpression) args.get(i).getValue(); IAlgebricksConstantValue acv = ce.getValue(); if (!(acv instanceof AsterixConstantValue)) { throw new AlgebricksException("Expected arg[" + i + "] to be of type String"); } AsterixConstantValue acv2 = (AsterixConstantValue) acv; if (acv2.getObject().getType().getTypeTag() != ATypeTag.STRING) { throw new AlgebricksException("Expected arg[" + i + "] to be of type String"); } return ((AString) acv2.getObject()).getStringValue(); }
private void setFile(ARecord externalFileRecord, ExternalFile file) { file.setFileName( ((AString) externalFileRecord.getValueByPos(FilesIndexDescription.EXTERNAL_FILE_NAME_FIELD_INDEX)) .getStringValue()); file.setSize(((AInt64) externalFileRecord.getValueByPos(FilesIndexDescription.EXTERNAL_FILE_SIZE_FIELD_INDEX)) .getLongValue()); file.setLastModefiedTime(new Date( ((ADateTime) externalFileRecord.getValueByPos(FilesIndexDescription.EXTERNAL_FILE_MOD_DATE_FIELD_INDEX)) .getChrononTime())); }
private List<String> getListFromExpression(String funcName, ILogicalExpression expression, SourceLocation sourceLoc) throws AlgebricksException { AbstractFunctionCallExpression funcExp = (AbstractFunctionCallExpression) expression; List<Mutable<ILogicalExpression>> args = funcExp.getArguments(); List<String> list = new ArrayList<>(); for (Mutable<ILogicalExpression> arg : args) { // At this point all elements has to be a constant // Input list has only one level of nesting (list of list or list of strings) ConstantExpression ce = (ConstantExpression) arg.getValue(); if (!(ce.getValue() instanceof AsterixConstantValue)) { throw new InvalidExpressionException(sourceLoc, funcName, 1, ce, LogicalExpressionTag.CONSTANT); } IAObject item = ((AsterixConstantValue) ce.getValue()).getObject(); ATypeTag type = item.getType().getTypeTag(); if (type == ATypeTag.STRING) { list.add(((AString) item).getStringValue()); } else { throw new UnsupportedTypeException(sourceLoc, funcName, type); } } return list; }
private boolean isContainsFuncSelectOptimizable(Index index, IOptimizableFuncExpr optFuncExpr) { AsterixConstantValue strConstVal = (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(0)).getValue(); IAObject strObj = strConstVal.getObject(); ATypeTag typeTag = strObj.getType().getTypeTag(); if (!isContainsFuncCompatible(typeTag, index.getIndexType())) { return false; } // Check that the constant search string has at least gramLength characters. if (strObj.getType().getTypeTag() == ATypeTag.STRING) { AString astr = (AString) strObj; if (astr.getStringValue().length() >= index.getGramLength()) { return true; } } return false; }