Example usage for javax.xml.registry.infomodel User getKey

List of usage examples for javax.xml.registry.infomodel User getKey

Introduction

In this page you can find the example usage for javax.xml.registry.infomodel User getKey.

Prototype

Key getKey() throws JAXRException;

Source Link

Document

Gets the key representing the universally unique ID (UUID) for this object.

Usage

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;
}