public <T extends StoreInfo> T getStoreByName( WorkspaceInfo workspace, String name, Class<T> clazz) { WorkspaceInfo ws = workspace; if (ws == null) { ws = getDefaultWorkspace(); } if (clazz != null && clazz.isAssignableFrom(DataStoreInfo.class) && (name == null || name.equals(Catalog.DEFAULT))) { return (T) getDefaultDataStore(workspace); } T store = facade.getStoreByName(ws, name, clazz); if (store == null && workspace == null) { store = facade.getStoreByName(CatalogFacade.ANY_WORKSPACE, name, clazz); } return store; }
public void remove(StoreInfo store) { if (!getResourcesByStore(store, ResourceInfo.class).isEmpty()) { throw new IllegalArgumentException("Unable to delete non-empty store."); } // TODO: remove synchronized block, need transactions synchronized (facade) { facade.remove(store); WorkspaceInfo workspace = store.getWorkspace(); DataStoreInfo defaultStore = getDefaultDataStore(workspace); if (store.equals(defaultStore) || defaultStore == null) { // TODO: this will fire multiple events, we want to fire only one setDefaultDataStore(workspace, null); // default removed, choose another store to become default if possible List dstores = getStoresByWorkspace(workspace, DataStoreInfo.class); if (!dstores.isEmpty()) { setDefaultDataStore(workspace, (DataStoreInfo) dstores.get(0)); } } } removed(store); }
public void add(StoreInfo store) { if (store.getWorkspace() == null) { store.setWorkspace(getDefaultWorkspace()); } validate(store, true); // TODO: remove synchronized block, need transactions StoreInfo added; synchronized (facade) { added = facade.add(resolve(store)); // if there is no default store use this one as the default if (getDefaultDataStore(store.getWorkspace()) == null && store instanceof DataStoreInfo) { setDefaultDataStore(store.getWorkspace(), (DataStoreInfo) store); } } added(added); }