List of usage examples for javax.xml.registry.infomodel User getKey
Key getKey() throws JAXRException;
From source file:it.cnr.icar.eric.client.xml.registry.LifeCycleManagerImpl.java
private boolean isCallersUserBeingDeleted(Collection<?> keys) throws JAXRException { boolean isCallersUserToBeDeleted = false; User user = ((DeclarativeQueryManagerImpl) regService.getDeclarativeQueryManager()).getCallersUser(); String userId = user.getKey().getId(); if ((user != null) && (keys != null)) { Iterator<?> keyItr = keys.iterator(); while (keyItr.hasNext()) { Key key = (Key) keyItr.next(); String objectId = key.getId(); if (objectId.equalsIgnoreCase(userId)) { isCallersUserToBeDeleted = true; break; }//from w w w. j a v a2 s . c o m } } return isCallersUserToBeDeleted; }
From source file:it.cnr.icar.eric.client.ui.thin.RegistryObjectCollectionBean.java
/** * Delete selected composed Objects. Returns Failure/Success string for display. * * @param none/*from w w w .ja v a 2 s. c o m*/ * @return String */ public String doDeleteOnCurrentComposedROB() { String status = "failure"; int totalCount = 0; int successCount = 0; if (!isUserAllowedToPublish()) { status = RegistryBrowser.getInstance().getAuthenticationStatus(); } else { getCurrentRegistryObjectBean().setFormUpdateIgnored(false); HashSet<RegistryObjectBean> robsToDelete = new HashSet<RegistryObjectBean>(); if (relatedSearchResults != null && relatedSearchResults.size() > 0) { Iterator<RegistryObjectBean> itr = relatedSearchResults.iterator(); RegistryObject ro = currentRegistryObject.getRegistryObject(); while (itr.hasNext()) { RegistryObjectBean rob = itr.next(); if (rob.isRelatedSelected()) { totalCount++; Method m = null; String method = null; Class<?>[] args = new Class[1]; Class<?> clazz = null; Object[] composedObject = null; String parentClassName = null; String parentType = null; String composedClassName = null; String composedType = null; try { // Use reflection to remove the composed object //Class clazz = javax.xml.registry.infomodel.RegistryObject.class; parentType = currentRegistryObject.getObjectType(); if (parentType.equals("ClassificationNode")) { parentType = "Concept"; } parentClassName = "javax.xml.registry.infomodel." + parentType; clazz = this.getClass().getClassLoader().loadClass(parentClassName); // Get Composed object to remove Object nonRO = rob.getNonRegistryObject(); composedObject = new Object[1]; if (nonRO != null) { composedObject[0] = nonRO; } else { composedObject[0] = rob.getRegistryObject(); } // Get class of composed object composedType = rob.getObjectType(); if (composedType.equals("ClassificationNode")) { composedType = "Concept"; } composedClassName = "javax.xml.registry.infomodel." + composedType; args[0] = this.getClass().getClassLoader().loadClass(composedClassName); method = "remove" + composedType; if ((parentType.equalsIgnoreCase("ClassificationScheme") || parentType.equalsIgnoreCase("Concept")) && method.equalsIgnoreCase("removeConcept")) { method = "removeChildConcept"; } if (parentType.equalsIgnoreCase("Organization") && method.equalsIgnoreCase("removeOrganization")) { method = "removeChildOrganization"; } boolean canDelete = true; if (parentType.equalsIgnoreCase("Organization") && method.equalsIgnoreCase("removeUser")) { User primaryContact = ((OrganizationImpl) currentRegistryObject.getRegistryObject()) .getPrimaryContact(); if ((primaryContact.getKey().getId()) .equals(rob.getRegistryObject().getKey().getId())) { canDelete = false; append(WebUIResourceBundle.getInstance() .getString("message.cannotDeletePrimaryContact")); } } if (composedType.equalsIgnoreCase("Association") && method.equalsIgnoreCase("removeAssociation")) { if (nonRO instanceof Association) { if (!rob.getRegistryObject().getKey().getId() .equals(((Association) nonRO).getSourceObject().getKey().getId())) { canDelete = false; append(WebUIResourceBundle.getInstance() .getString("message.cannotDeleteTargetAssociation")); status = "targetAssociaton"; } } } if (canDelete) { m = clazz.getMethod(method, args); m.invoke(ro, composedObject); if (composedType.equalsIgnoreCase("User")) { currentRegistryObject.removeRelatedObject(composedObject[0]); } else { prepareToDelete(rob, robsToDelete, composedObject); } handleSavesToDrilldownObject(composedObject[0]); itr.remove(); successCount++; status = "publishSuccessful"; } } catch (Throwable t) { try { // Try JAXR provider classes parentClassName = "it.cnr.icar.eric.client.xml.registry.infomodel." + parentType + "Impl"; clazz = this.getClass().getClassLoader().loadClass(parentClassName); Object nonRO = rob.getNonRegistryObject(); composedObject = new Object[1]; if (nonRO != null) { composedObject[0] = nonRO; } else { composedObject[0] = rob.getRegistryObject(); } // Get class of composed object composedType = rob.getObjectType(); composedClassName = "javax.xml.registry.infomodel." + composedType; args[0] = this.getClass().getClassLoader().loadClass(composedClassName); method = "remove" + composedType; boolean canDelete = true; if (composedType.equalsIgnoreCase("Association") && method.equalsIgnoreCase("removeAssociation")) { if (nonRO instanceof Association) { if (!rob.getRegistryObject().getKey().getId() .equals(((Association) nonRO).getSourceObject().getKey().getId())) { canDelete = false; append(WebUIResourceBundle.getInstance() .getString("message.cannotDeleteTargetAssociation")); status = "targetAssociaton"; } } } if (canDelete) { m = clazz.getMethod(method, args); m.invoke(ro, composedObject); prepareToDelete(rob, robsToDelete, composedObject); handleSavesToDrilldownObject(composedObject[0]); itr.remove(); successCount++; status = "publishSuccessful"; } } catch (Throwable t3) { try { parentClassName = "javax.xml.registry.infomodel.ExtensibleObject"; clazz = this.getClass().getClassLoader().loadClass(parentClassName); args[0] = String.class; m = clazz.getMethod(method, args); Object objArgs[] = new Object[1]; objArgs[0] = ((Slot) composedObject[0]).getName(); m.invoke(ro, objArgs); prepareToDelete(rob, robsToDelete, composedObject); handleSavesToDrilldownObject(composedObject[0]); itr.remove(); successCount++; status = "publishSuccessful"; } catch (Throwable t2) { log.error(WebUIResourceBundle.getInstance() .getString("message.CouldNotDeleteComposedObject"), t2); } } } } } } storePseduoComposedObjects(robsToDelete); if (robsToDelete.size() > 0) { relatedSearchResults.removeAll(robsToDelete); } } //No Objects were selected for deletion if (totalCount == 0) { status = "showSearchPanel"; append(WebUIResourceBundle.getInstance().getString("message.noObjectsDeleted")); } else if (totalCount != 0 && status.equals("targetAssociaton")) { status = "showSearchPanel"; } else { //All objects successfully deleted, or partial failure if (status.equals("publishSuccessful")) { append(WebUIResourceBundle.getInstance().getString("message.objectsSuccessfulyDeleted", new Object[] { new Integer(successCount) })); if (successCount < totalCount) { append(WebUIResourceBundle.getInstance().getString("message.someObjectsFailedDeletion", new Object[] { new Integer(totalCount - successCount) })); } } //All objects failed deletion else { append(WebUIResourceBundle.getInstance().getString("message.someObjectsFailedDeletion", new Object[] { new Integer(totalCount - successCount) })); } } return status; }