All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.glassfish.admin.cli.resources.UniqueResourceNameValidator Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package org.glassfish.admin.cli.resources;

import com.sun.enterprise.config.serverbeans.Domain;
import com.sun.enterprise.config.serverbeans.Resource;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.internal.api.Globals;

/**
 * Created with IntelliJ IDEA. User: naman Date: 2/8/12 Time: 4:11 PM To change this template use File | Settings | File
 * Templates.
 */
public class UniqueResourceNameValidator implements ConstraintValidator {

    Domain domain = null;

    public void initialize(final UniqueResourceNameConstraint constraint) {

        /*ServiceLocator locator = ServiceLocatorFactory.getInstance().find("default");
        if (locator == null) return;

        ConfigBeansUtilities cbu = locator.getService(ConfigBeansUtilities.class);
        if (cbu == null) return;

        domain = cbu.getDomain();*/

        ServiceLocator habitat = Globals.getDefaultHabitat();
        if (habitat == null)
            return; // due to: http://java.net/jira/browse/GLASSFISH-19043

        domain = habitat.getService(Domain.class);

    }

    @Override
    public boolean isValid(final Resource resource, final ConstraintValidatorContext constraintValidatorContext) {
        if (domain != null) {
            if (resource.getParent().getParent() instanceof Domain) {
                for (Resource res : domain.getResources().getResources()) {
                    if (resource.getIdentity().equals(res.getIdentity())) {
                        Class[] resourceInterfaces = resource.getClass().getInterfaces();
                        Class[] resInterfaces = res.getClass().getInterfaces();

                        for (Class resourceClass : resourceInterfaces) {
                            for (Class resClass : resInterfaces) {
                                if (resClass.getName().equals(resourceClass.getName())) {
                                    return true;
                                }
                            }
                        }
                        return false;
                    }
                }
            }
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy