public Library addLibraryIfNotExists(Library library) { synchronized (libraries) { Map<String, Library> libsInDataverse = libraries.get(library.getDataverseName()); boolean needToAddd = (libsInDataverse == null || libsInDataverse.get(library.getName()) != null); if (needToAddd) { if (libsInDataverse == null) { libsInDataverse = new HashMap<>(); libraries.put(library.getDataverseName(), libsInDataverse); } return libsInDataverse.put(library.getDataverseName(), library); } return null; } }
public Library dropLibrary(Library library) { synchronized (libraries) { Map<String, Library> librariesInDataverse = libraries.get(library.getDataverseName()); if (librariesInDataverse != null) { return librariesInDataverse.remove(library.getName()); } return null; } }
@Override public void addLibrary(TxnId txnId, Library library) throws AlgebricksException, RemoteException { try { // Insert into the 'Library' dataset. LibraryTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getLibraryTupleTranslator(true); ITupleReference libraryTuple = tupleReaderWriter.getTupleFromMetadataEntity(library); insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, libraryTuple); } catch (HyracksDataException e) { if (e.getComponent().equals(ErrorCode.HYRACKS) && e.getErrorCode() == ErrorCode.DUPLICATE_KEY) { throw new AlgebricksException("A library with this name " + library.getDataverseName() + " already exists in dataverse '" + library.getDataverseName() + "'.", e); } else { throw new AlgebricksException(e); } } }
aString.setValue(library.getDataverseName()); stringSerde.serialize(aString, tupleBuilder.getDataOutput()); tupleBuilder.addFieldEndOffset(); aString.setValue(library.getDataverseName()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.LIBRARY_ARECORD_DATAVERSENAME_FIELD_INDEX, fieldValue);