Example usage for java.util Collection equals

List of usage examples for java.util Collection equals

Introduction

In this page you can find the example usage for java.util Collection equals.

Prototype

boolean equals(Object o);

Source Link

Document

Compares the specified object with this collection for equality.

Usage

From source file:com.jayway.jsonpath.Criteria.java

boolean singleObjectApply(Map<String, Object> map) {

    for (CriteriaType key : this.criteria.keySet()) {

        Object actualVal = map.get(this.key);
        Object expectedVal = this.criteria.get(key);

        if (CriteriaType.GT.equals(key)) {

            if (expectedVal == null || actualVal == null) {
                return false;
            }//from w  w w .j av a  2 s .  co  m

            Number expectedNumber = (Number) expectedVal;
            Number actualNumber = (Number) actualVal;

            return (actualNumber.doubleValue() > expectedNumber.doubleValue());

        } else if (CriteriaType.GTE.equals(key)) {

            if (expectedVal == null || actualVal == null) {
                return false;
            }

            Number expectedNumber = (Number) expectedVal;
            Number actualNumber = (Number) actualVal;

            return (actualNumber.doubleValue() >= expectedNumber.doubleValue());

        } else if (CriteriaType.LT.equals(key)) {

            if (expectedVal == null || actualVal == null) {
                return false;
            }

            Number expectedNumber = (Number) expectedVal;
            Number actualNumber = (Number) actualVal;

            return (actualNumber.doubleValue() < expectedNumber.doubleValue());

        } else if (CriteriaType.LTE.equals(key)) {

            if (expectedVal == null || actualVal == null) {
                return false;
            }

            Number expectedNumber = (Number) expectedVal;
            Number actualNumber = (Number) actualVal;

            return (actualNumber.doubleValue() <= expectedNumber.doubleValue());

        } else if (CriteriaType.NE.equals(key)) {
            if (expectedVal == null && actualVal == null) {
                return false;
            }
            if (expectedVal == null) {
                return true;
            } else {
                return !expectedVal.equals(actualVal);
            }

        } else if (CriteriaType.IN.equals(key)) {

            Collection exp = (Collection) expectedVal;

            return exp.contains(actualVal);

        } else if (CriteriaType.NIN.equals(key)) {

            Collection exp = (Collection) expectedVal;

            return !exp.contains(actualVal);
        } else if (CriteriaType.ALL.equals(key)) {

            Collection exp = (Collection) expectedVal;
            Collection act = (Collection) actualVal;

            return act.containsAll(exp);

        } else if (CriteriaType.SIZE.equals(key)) {

            int exp = (Integer) expectedVal;
            List act = (List) actualVal;

            return (act.size() == exp);

        } else if (CriteriaType.EXISTS.equals(key)) {

            boolean exp = (Boolean) expectedVal;
            boolean act = map.containsKey(this.key);

            return act == exp;

        } else if (CriteriaType.TYPE.equals(key)) {

            Class<?> exp = (Class<?>) expectedVal;
            Class<?> act = null;
            if (map.containsKey(this.key)) {
                Object actVal = map.get(this.key);
                if (actVal != null) {
                    act = actVal.getClass();
                }
            }
            if (act == null) {
                return false;
            } else {
                return act.equals(exp);
            }

        } else if (CriteriaType.REGEX.equals(key)) {

            Pattern exp = (Pattern) expectedVal;
            String act = (String) actualVal;
            if (act == null) {
                return false;
            }
            return exp.matcher(act).matches();

        } else {
            throw new UnsupportedOperationException("Criteria type not supported: " + key.name());
        }
    }
    if (isValue != NOT_SET) {

        if (isValue instanceof Collection) {
            Collection<Criteria> cs = (Collection<Criteria>) isValue;
            for (Criteria crit : cs) {
                for (Criteria c : crit.criteriaChain) {
                    if (!c.singleObjectApply(map)) {
                        return false;
                    }
                }
            }
            return true;
        } else {
            if (isValue == null) {
                return (map.get(key) == null);
            } else {
                return isValue.equals(map.get(key));
            }
        }
    } else {

    }
    return true;
}

From source file:org.apache.solr.client.solrj.impl.CloudSolrServerTest.java

private void allTests() throws Exception {

    String collectionName = "clientTestExternColl";
    createCollection(collectionName, controlClientCloud, 2, 2);
    waitForRecoveriesToFinish(collectionName, false);
    CloudSolrServer cloudClient = createCloudClient(collectionName);

    assertNotNull(cloudClient);/*from   w  ww  . j  av  a  2 s.com*/

    handle.clear();
    handle.put("timestamp", SKIPVAL);

    waitForThingsToLevelOut(30);

    controlClient.deleteByQuery("*:*");
    cloudClient.deleteByQuery("*:*");

    controlClient.commit();
    this.cloudClient.commit();

    SolrInputDocument doc1 = new SolrInputDocument();
    doc1.addField(id, "0");
    doc1.addField("a_t", "hello1");
    SolrInputDocument doc2 = new SolrInputDocument();
    doc2.addField(id, "2");
    doc2.addField("a_t", "hello2");

    UpdateRequest request = new UpdateRequest();
    request.add(doc1);
    request.add(doc2);
    request.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false);

    // Test single threaded routed updates for UpdateRequest
    NamedList<Object> response = cloudClient.request(request);
    CloudSolrServer.RouteResponse rr = (CloudSolrServer.RouteResponse) response;
    Map<String, LBHttpSolrServer.Req> routes = rr.getRoutes();
    Iterator<Map.Entry<String, LBHttpSolrServer.Req>> it = routes.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<String, LBHttpSolrServer.Req> entry = it.next();
        String url = entry.getKey();
        UpdateRequest updateRequest = (UpdateRequest) entry.getValue().getRequest();
        SolrInputDocument doc = updateRequest.getDocuments().get(0);
        String id = doc.getField("id").getValue().toString();
        ModifiableSolrParams params = new ModifiableSolrParams();
        params.add("q", "id:" + id);
        params.add("distrib", "false");
        QueryRequest queryRequest = new QueryRequest(params);
        HttpSolrServer solrServer = new HttpSolrServer(url);
        QueryResponse queryResponse = queryRequest.process(solrServer);
        SolrDocumentList docList = queryResponse.getResults();
        assertTrue(docList.getNumFound() == 1);
    }

    // Test the deleteById routing for UpdateRequest

    UpdateRequest delRequest = new UpdateRequest();
    delRequest.deleteById("0");
    delRequest.deleteById("2");
    delRequest.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false);
    cloudClient.request(delRequest);
    ModifiableSolrParams qParams = new ModifiableSolrParams();
    qParams.add("q", "*:*");
    QueryRequest qRequest = new QueryRequest(qParams);
    QueryResponse qResponse = qRequest.process(cloudClient);
    SolrDocumentList docs = qResponse.getResults();
    assertTrue(docs.getNumFound() == 0);

    // Test Multi-Threaded routed updates for UpdateRequest

    CloudSolrServer threadedClient = null;
    try {
        threadedClient = new CloudSolrServer(zkServer.getZkAddress());
        threadedClient.setParallelUpdates(true);
        threadedClient.setDefaultCollection(collectionName);
        response = threadedClient.request(request);
        rr = (CloudSolrServer.RouteResponse) response;
        routes = rr.getRoutes();
        it = routes.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, LBHttpSolrServer.Req> entry = it.next();
            String url = entry.getKey();
            UpdateRequest updateRequest = (UpdateRequest) entry.getValue().getRequest();
            SolrInputDocument doc = updateRequest.getDocuments().get(0);
            String id = doc.getField("id").getValue().toString();
            ModifiableSolrParams params = new ModifiableSolrParams();
            params.add("q", "id:" + id);
            params.add("distrib", "false");
            QueryRequest queryRequest = new QueryRequest(params);
            HttpSolrServer solrServer = new HttpSolrServer(url);
            QueryResponse queryResponse = queryRequest.process(solrServer);
            SolrDocumentList docList = queryResponse.getResults();
            assertTrue(docList.getNumFound() == 1);
        }
    } finally {
        threadedClient.shutdown();
    }

    // Test that queries with _route_ params are routed by the client

    // Track request counts on each node before query calls
    ClusterState clusterState = cloudClient.getZkStateReader().getClusterState();
    DocCollection col = clusterState.getCollection(collectionName);
    Map<String, Long> requestCountsMap = Maps.newHashMap();
    for (Slice slice : col.getSlices()) {
        for (Replica replica : slice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);
            requestCountsMap.put(baseURL, getNumRequests(baseURL, collectionName));
        }
    }

    // Collect the base URLs of the replicas of shard that's expected to be hit
    DocRouter router = col.getRouter();
    Collection<Slice> expectedSlices = router.getSearchSlicesSingle("0", null, col);
    Set<String> expectedBaseURLs = Sets.newHashSet();
    for (Slice expectedSlice : expectedSlices) {
        for (Replica replica : expectedSlice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);
            expectedBaseURLs.add(baseURL);
        }
    }

    assertTrue("expected urls is not fewer than all urls! expected=" + expectedBaseURLs + "; all="
            + requestCountsMap.keySet(), expectedBaseURLs.size() < requestCountsMap.size());

    // Calculate a number of shard keys that route to the same shard.
    int n;
    if (TEST_NIGHTLY) {
        n = random().nextInt(999) + 2;
    } else {
        n = random().nextInt(9) + 2;
    }

    List<String> sameShardRoutes = Lists.newArrayList();
    sameShardRoutes.add("0");
    for (int i = 1; i < n; i++) {
        String shardKey = Integer.toString(i);
        Collection<Slice> slices = router.getSearchSlicesSingle(shardKey, null, col);
        log.info("Expected Slices {}", slices);
        if (expectedSlices.equals(slices)) {
            sameShardRoutes.add(shardKey);
        }
    }

    assertTrue(sameShardRoutes.size() > 1);

    // Do N queries with _route_ parameter to the same shard
    for (int i = 0; i < n; i++) {
        ModifiableSolrParams solrParams = new ModifiableSolrParams();
        solrParams.set(CommonParams.Q, "*:*");
        solrParams.set(ShardParams._ROUTE_, sameShardRoutes.get(random().nextInt(sameShardRoutes.size())));
        log.info("output  : {}", cloudClient.query(solrParams));
    }

    // Request counts increase from expected nodes should aggregate to 1000, while there should be
    // no increase in unexpected nodes.
    int increaseFromExpectedUrls = 0;
    int increaseFromUnexpectedUrls = 0;
    Map<String, Long> numRequestsToUnexpectedUrls = Maps.newHashMap();
    for (Slice slice : col.getSlices()) {
        for (Replica replica : slice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);

            Long prevNumRequests = requestCountsMap.get(baseURL);
            Long curNumRequests = getNumRequests(baseURL, collectionName);

            long delta = curNumRequests - prevNumRequests;
            if (expectedBaseURLs.contains(baseURL)) {
                increaseFromExpectedUrls += delta;
            } else {
                increaseFromUnexpectedUrls += delta;
                numRequestsToUnexpectedUrls.put(baseURL, delta);
            }
        }
    }

    assertEquals("Unexpected number of requests to expected URLs", n, increaseFromExpectedUrls);
    assertEquals("Unexpected number of requests to unexpected URLs: " + numRequestsToUnexpectedUrls, 0,
            increaseFromUnexpectedUrls);

    controlClient.deleteByQuery("*:*");
    cloudClient.deleteByQuery("*:*");

    controlClient.commit();
    cloudClient.commit();
    cloudClient.shutdown();
}

From source file:org.apache.solr.client.solrj.impl.CloudSolrClientTest.java

@Test
public void testRouting() throws Exception {

    AbstractUpdateRequest request = new UpdateRequest().add(id, "0", "a_t", "hello1")
            .add(id, "2", "a_t", "hello2").setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

    // Test single threaded routed updates for UpdateRequest
    NamedList<Object> response = cluster.getSolrClient().request(request, COLLECTION);
    if (cluster.getSolrClient().isDirectUpdatesToLeadersOnly()) {
        checkSingleServer(response);//from  w  ww.  j  a va2 s  . c om
    }
    CloudSolrClient.RouteResponse rr = (CloudSolrClient.RouteResponse) response;
    Map<String, LBHttpSolrClient.Req> routes = rr.getRoutes();
    Iterator<Map.Entry<String, LBHttpSolrClient.Req>> it = routes.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<String, LBHttpSolrClient.Req> entry = it.next();
        String url = entry.getKey();
        UpdateRequest updateRequest = (UpdateRequest) entry.getValue().getRequest();
        SolrInputDocument doc = updateRequest.getDocuments().get(0);
        String id = doc.getField("id").getValue().toString();
        ModifiableSolrParams params = new ModifiableSolrParams();
        params.add("q", "id:" + id);
        params.add("distrib", "false");
        QueryRequest queryRequest = new QueryRequest(params);
        try (HttpSolrClient solrClient = getHttpSolrClient(url)) {
            QueryResponse queryResponse = queryRequest.process(solrClient);
            SolrDocumentList docList = queryResponse.getResults();
            assertTrue(docList.getNumFound() == 1);
        }
    }

    // Test the deleteById routing for UpdateRequest

    final UpdateResponse uResponse = new UpdateRequest().deleteById("0").deleteById("2")
            .commit(cluster.getSolrClient(), COLLECTION);
    if (cluster.getSolrClient().isDirectUpdatesToLeadersOnly()) {
        checkSingleServer(uResponse.getResponse());
    }

    QueryResponse qResponse = cluster.getSolrClient().query(COLLECTION, new SolrQuery("*:*"));
    SolrDocumentList docs = qResponse.getResults();
    assertEquals(0, docs.getNumFound());

    // Test Multi-Threaded routed updates for UpdateRequest
    try (CloudSolrClient threadedClient = getCloudSolrClient(cluster.getZkServer().getZkAddress())) {
        threadedClient.setParallelUpdates(true);
        threadedClient.setDefaultCollection(COLLECTION);
        response = threadedClient.request(request);
        if (threadedClient.isDirectUpdatesToLeadersOnly()) {
            checkSingleServer(response);
        }
        rr = (CloudSolrClient.RouteResponse) response;
        routes = rr.getRoutes();
        it = routes.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, LBHttpSolrClient.Req> entry = it.next();
            String url = entry.getKey();
            UpdateRequest updateRequest = (UpdateRequest) entry.getValue().getRequest();
            SolrInputDocument doc = updateRequest.getDocuments().get(0);
            String id = doc.getField("id").getValue().toString();
            ModifiableSolrParams params = new ModifiableSolrParams();
            params.add("q", "id:" + id);
            params.add("distrib", "false");
            QueryRequest queryRequest = new QueryRequest(params);
            try (HttpSolrClient solrClient = getHttpSolrClient(url)) {
                QueryResponse queryResponse = queryRequest.process(solrClient);
                SolrDocumentList docList = queryResponse.getResults();
                assertTrue(docList.getNumFound() == 1);
            }
        }
    }

    // Test that queries with _route_ params are routed by the client

    // Track request counts on each node before query calls
    ClusterState clusterState = cluster.getSolrClient().getZkStateReader().getClusterState();
    DocCollection col = clusterState.getCollection(COLLECTION);
    Map<String, Long> requestCountsMap = Maps.newHashMap();
    for (Slice slice : col.getSlices()) {
        for (Replica replica : slice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);
            requestCountsMap.put(baseURL, getNumRequests(baseURL, COLLECTION));
        }
    }

    // Collect the base URLs of the replicas of shard that's expected to be hit
    DocRouter router = col.getRouter();
    Collection<Slice> expectedSlices = router.getSearchSlicesSingle("0", null, col);
    Set<String> expectedBaseURLs = Sets.newHashSet();
    for (Slice expectedSlice : expectedSlices) {
        for (Replica replica : expectedSlice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);
            expectedBaseURLs.add(baseURL);
        }
    }

    assertTrue("expected urls is not fewer than all urls! expected=" + expectedBaseURLs + "; all="
            + requestCountsMap.keySet(), expectedBaseURLs.size() < requestCountsMap.size());

    // Calculate a number of shard keys that route to the same shard.
    int n;
    if (TEST_NIGHTLY) {
        n = random().nextInt(999) + 2;
    } else {
        n = random().nextInt(9) + 2;
    }

    List<String> sameShardRoutes = Lists.newArrayList();
    sameShardRoutes.add("0");
    for (int i = 1; i < n; i++) {
        String shardKey = Integer.toString(i);
        Collection<Slice> slices = router.getSearchSlicesSingle(shardKey, null, col);
        log.info("Expected Slices {}", slices);
        if (expectedSlices.equals(slices)) {
            sameShardRoutes.add(shardKey);
        }
    }

    assertTrue(sameShardRoutes.size() > 1);

    // Do N queries with _route_ parameter to the same shard
    for (int i = 0; i < n; i++) {
        ModifiableSolrParams solrParams = new ModifiableSolrParams();
        solrParams.set(CommonParams.Q, "*:*");
        solrParams.set(ShardParams._ROUTE_, sameShardRoutes.get(random().nextInt(sameShardRoutes.size())));
        log.info("output: {}", cluster.getSolrClient().query(COLLECTION, solrParams));
    }

    // Request counts increase from expected nodes should aggregate to 1000, while there should be
    // no increase in unexpected nodes.
    int increaseFromExpectedUrls = 0;
    int increaseFromUnexpectedUrls = 0;
    Map<String, Long> numRequestsToUnexpectedUrls = Maps.newHashMap();
    for (Slice slice : col.getSlices()) {
        for (Replica replica : slice.getReplicas()) {
            String baseURL = (String) replica.get(ZkStateReader.BASE_URL_PROP);

            Long prevNumRequests = requestCountsMap.get(baseURL);
            Long curNumRequests = getNumRequests(baseURL, COLLECTION);

            long delta = curNumRequests - prevNumRequests;
            if (expectedBaseURLs.contains(baseURL)) {
                increaseFromExpectedUrls += delta;
            } else {
                increaseFromUnexpectedUrls += delta;
                numRequestsToUnexpectedUrls.put(baseURL, delta);
            }
        }
    }

    assertEquals("Unexpected number of requests to expected URLs", n, increaseFromExpectedUrls);
    assertEquals("Unexpected number of requests to unexpected URLs: " + numRequestsToUnexpectedUrls, 0,
            increaseFromUnexpectedUrls);

}

From source file:es.pode.catalogadorWeb.presentacion.exportar.ExportarControllerImpl.java

public final String validarLomes(ActionMapping mapping, ValidarLomesForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    String resultado;//  www. j  a  va2 s.c o m
    boolean ok = true;

    //String idiomaLocale=((Locale)request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)).getLanguage();

    ResourceBundle datosResources = I18n.getInstance().getResource("application-resources",
            (Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE));
    Collection mensajes = new ArrayList();

    LomAvanzadoVO lomAv = this.getCatalogadorAvSession(request).getMDSesion();

    if (lomAv == null) {
        lomAv = new LomAvanzadoVO();
    }
    logger.debug("Mtodo de validacion de metadatos avanzados");

    // -- GENERAL --
    if (lomAv.getGeneral() == null) {
        mensajes.add(datosResources.getString("CAV.1"));
    } else {

        AvGeneralVO gn = lomAv.getGeneral();
        if (gn.getIdentificadores() != null && gn.getIdentificadores().length > 0) {
            //         CATALOGOS
            int i = 0;
            while ((ok) && (i < gn.getIdentificadores().length)) {

                if (gn.getIdentificadores()[i] != null) {
                    String cat = gn.getIdentificadores()[i].getCatalogo();
                    String ent = gn.getIdentificadores()[i].getEntrada();

                    if (((cat == null) || (cat.trim().equals("")))
                            && ((ent != null) && (!ent.trim().equals(""))))//Si existe una entrada, un catlogo es obligatorio
                        mensajes.add(datosResources.getString("CAV.1.1.1"));
                }

                if (!mensajes.equals("")) {
                    ok = false;
                } else {
                    i++;
                }
            }
            //ENTRADAS
            i = 0;
            ok = true;
            while ((ok) && (i < gn.getIdentificadores().length)) {

                if (gn.getIdentificadores()[i] != null) {
                    String cat = gn.getIdentificadores()[i].getCatalogo();
                    String ent = gn.getIdentificadores()[i].getEntrada();

                    if (((ent == null) || (ent.trim().equals("")))
                            && ((cat != null) && (!cat.trim().equals(""))))//Si existe un catlogo, una entrada es obligatoria
                        mensajes.add(datosResources.getString("CAV.1.1.2"));
                }

                if (!mensajes.equals("")) {
                    ok = false;
                } else {
                    i++;
                }
            }
        }
        //TITULOS
        boolean todosVacios = true;
        String texto = null;
        if (gn.getTitulo() != null) {
            for (int i = 0; i < gn.getTitulo().getTextos().length && todosVacios; i++) {
                if (gn.getTitulo().getTextos()[i] != null) {
                    texto = gn.getTitulo().getTextos()[i].getTexto();
                }

                if (texto != null && !texto.trim().equals("")) {
                    todosVacios = false;
                }
            }
            if (todosVacios)
                mensajes.add(datosResources.getString("CAV.1.2"));//debe tener por lo menos un titulo
        } else
            mensajes.add(datosResources.getString("CAV.1.2"));//debe tener por lo menos un titulo

        //IDIOMA
        todosVacios = true;
        String idioma = null;
        if (gn.getIdiomas() != null && gn.getIdiomas().length > 0) {
            for (int i = 0; i < gn.getIdiomas().length && todosVacios; i++) {
                if (gn.getIdiomas()[i] != null) {
                    idioma = gn.getIdiomas()[i].getTexto();
                }
                if (idioma != null && !idioma.equals("")) {
                    todosVacios = false;
                }
            }
            if (todosVacios)
                mensajes.add(datosResources.getString("CAV.1.3"));//debe tener por lo menos un idioma
        } else
            mensajes.add(datosResources.getString("CAV.1.3"));//debe tener por lo menos un idioma

        todosVacios = true;
        String descripcion = null;
        if (gn.getDescripciones() != null && gn.getDescripciones().length > 0) {
            for (int i = 0; i < gn.getDescripciones().length && todosVacios; i++) {
                if (gn.getDescripciones()[i] != null) {
                    for (int j = 0; j < gn.getDescripciones()[i].getTextos().length && todosVacios; j++) {
                        if (gn.getDescripciones()[i].getTextos()[j] != null) {
                            descripcion = gn.getDescripciones()[i].getTextos()[j].getTexto();
                        }

                        if (descripcion != null && !descripcion.trim().equals("")) {
                            todosVacios = false;
                        }
                    }
                }

            }
            if (todosVacios)
                mensajes.add(datosResources.getString("CAV.1.4"));//al menos una descripcion
        } else
            mensajes.add(datosResources.getString("CAV.1.4"));//al menos una descripcion

        //NIVEL DE AGREGACION
        if (gn.getNivelAgregacion() != null) {
            if (gn.getNivelAgregacion().getValor() == null || gn.getNivelAgregacion().getValor().equals(""))
                mensajes.add(datosResources.getString("CAV.1.8"));
        } else
            mensajes.add(datosResources.getString("CAV.1.8"));
    }

    //       -- CICLO DE VIDA --
    if (lomAv.getLifeCycle() != null) {
        AvLifeCycleVO life = lomAv.getLifeCycle();
        //            CONTRIBUCION
        String rol;
        boolean errorContRol = false;
        boolean errorContEntidad = false;
        boolean errorContFecha = false;
        boolean errorFecha = true;
        boolean errorFechaVacia = false;
        boolean errorDescVacia = false;
        boolean errorMinutos = false;

        boolean todosVacios = true;

        ContribucionVO[] contribuciones = life.getContribuciones();

        if (contribuciones != null && contribuciones.length > 0) {
            for (int i = 0; i < contribuciones.length
                    && (!errorContRol || !errorContEntidad || !errorContFecha); i++) {
                //            ROL
                if (!errorContRol) {
                    if (contribuciones[i].getTipo() != null) {
                        rol = contribuciones[i].getTipo().getValor();
                        if (rol == null || rol.trim().equals("")) {
                            errorContRol = true;
                            mensajes.add(datosResources.getString("CAV.2.3.1"));//El campo Tipo es obligatorio si se va a incluir una contribuci&oacute;n
                        }
                    } else {
                        errorContRol = true;
                        mensajes.add(datosResources.getString("CAV.2.3.1"));//El campo Tipo es obligatorio si se va a incluir una contribuci&oacute;n
                    }
                }
                //         //entidad
                if (!errorContEntidad) {
                    todosVacios = true;
                    if (contribuciones[i].getEntidades() != null
                            && contribuciones[i].getEntidades().length > 0) {
                        for (int j = 0; j < contribuciones[i].getEntidades().length && todosVacios; j++) {
                            EntidadVO ent = contribuciones[i].getEntidades()[j];

                            if (ent != null) {
                                if ((ent.getTexto() == null) || (ent.getTexto().trim().equals(""))) {
                                    errorContEntidad = true;
                                    mensajes.add(datosResources.getString("CAV.2.3.2"));//El campo Entidad es obligatorio si se va a incluir una contribuci&oacute;n
                                }
                            }

                        }
                    } else {
                        errorContEntidad = true;
                        mensajes.add(datosResources.getString("CAV.2.3.2"));//El campo Entidad es obligatorio si se va a incluir una contribuci&oacute;n
                    }
                }

                //fecha
                if (!errorContFecha) {
                    if (contribuciones[i].getFecha() != null) {
                        FechaVO fechaCont = contribuciones[i].getFecha();
                        DescripcionVO descCont = fechaCont.getDescripcion();

                        boolean fechaVacia = true;

                        if (fechaCont != null && fechaVacia) {
                            if ((fechaCont.getFecha() == null) || (fechaCont.getFecha().equals(""))) {
                                fechaVacia = false;
                            }
                        } else {
                            fechaVacia = false;
                        }

                        boolean descVacios = true;
                        String descFec = null;
                        if (descCont != null) {
                            for (int j = 0; j < descCont.getTextos().length && descVacios; j++) {
                                descFec = descCont.getTextos()[j].getTexto();
                                if (descFec == null || descFec.trim().equals("")) {
                                    descVacios = false;// si todos los campos descripcion son vacios
                                }
                            }
                        } else {
                            descVacios = false;
                        }

                        if (descVacios && fechaVacia && !errorFecha) {
                            //                           errorContFecha=true;
                            errorFecha = false;
                            mensajes.add(datosResources.getString("CAV.2.3.3"));//El campo FECHA    es obligatorio
                        } else if (!descVacios && fechaVacia && !errorFechaVacia && errorFecha) {
                            //                           errorContFecha=true;
                            errorFechaVacia = true;
                            mensajes.add(datosResources.getString("CAV.2.3.3.2"));//La descripci&oacute;n de la fecha es obligatoria si existe una fecha
                        } else if (descVacios && !fechaVacia && !errorDescVacia && errorFecha) {
                            //                           errorContFecha=true;
                            errorDescVacia = true;
                            mensajes.add(datosResources.getString("CAV.2.3.3.1"));//La fecha es obligatoria si existe una descripci&oacuete;n de fecha
                        }

                        //                        if(errorFecha && errorFechaVacia && errorDescVacia && errorMinutos)
                        //                           errorContFecha=true;
                    } else {
                        errorContFecha = true;
                        errorFecha = false;
                        mensajes.add(datosResources.getString("CAV.2.3.3"));//El campo FECHA    es obligatorio
                    }
                }
            }
        }
    }

    //       -- METAMETADATA --
    if (lomAv.getMetaMetadata() == null) {
        mensajes.add(datosResources.getString("CAV.3"));
    } else {
        AvMetametadataVO mm = lomAv.getMetaMetadata();

        int i = 0;
        boolean completo = true;
        boolean todosVacios = true;

        //IDENTIFICADORES
        IdentificadorVO[] identificadores = mm.getIdentificadores();
        if (identificadores != null && identificadores.length > 0) {
            for (i = 0; i < identificadores.length && completo; i++) {
                if ((identificadores[i].getCatalogo() != null
                        && identificadores[i].getCatalogo().trim().equals(""))
                        && (identificadores[i].getEntrada() != null
                                && !identificadores[i].getEntrada().trim().equals(""))) {
                    completo = false;
                    mensajes.add(datosResources.getString("CAV.3.1.1"));//Si existe una entrada para un identificador, un cat&aacute;logo es obligatorio
                }
            }
            completo = true;
            for (i = 0; i < identificadores.length && completo; i++) {
                if ((identificadores[i].getCatalogo() != null
                        && !identificadores[i].getCatalogo().trim().equals(""))
                        && (identificadores[i].getEntrada() != null
                                && identificadores[i].getEntrada().trim().equals(""))) {
                    completo = false;
                    mensajes.add(datosResources.getString("CAV.3.1.2"));//Si existe un cat&aacute;logo para un identificador, una entrada es obligatoria
                }
            }
        }

        //CONTRIBUCION
        String rol;
        boolean errorContRol = false;
        boolean errorContEntidad = false;
        boolean errorContFecha = false;
        boolean errorFecha = true;
        boolean errorFechaVacia = false;
        boolean errorDescVacia = false;
        boolean errorMinutos = false;

        ContribucionVO[] contribuciones = mm.getContribuciones();
        if (contribuciones != null && contribuciones.length > 0) {
            for (i = 0; i < contribuciones.length
                    && (!errorContRol || !errorContEntidad || !errorContFecha); i++) {
                //            ROL
                if (!errorContRol) {
                    if (contribuciones[i].getTipo() != null) {
                        rol = contribuciones[i].getTipo().getValor();
                        if (rol == null || rol.trim().equals("")) {
                            errorContRol = true;
                            mensajes.add(datosResources.getString("CAV.3.2.1"));//El campo Tipo es obligatorio si se va a incluir una contribuci&oacute;n
                        }
                    } else {
                        errorContRol = true;
                        mensajes.add(datosResources.getString("CAV.3.2.1"));//El campo Tipo es obligatorio si se va a incluir una contribuci&oacute;n
                    }
                }
                //         //entidad
                if (!errorContEntidad) {
                    todosVacios = true;
                    if (contribuciones[i].getEntidades() != null
                            && contribuciones[i].getEntidades().length > 0) {
                        for (int j = 0; j < contribuciones[i].getEntidades().length && todosVacios; j++) {
                            EntidadVO ent = contribuciones[i].getEntidades()[j];

                            if (ent != null) {
                                if ((ent.getTexto() == null) || (ent.getTexto().trim().equals(""))) {
                                    errorContEntidad = true;
                                    mensajes.add(datosResources.getString("CAV.3.2.2"));//El campo Entidad es obligatorio si se va a incluir una contribuci&oacute;n
                                }
                            }

                        }
                    } else {
                        errorContEntidad = true;
                        mensajes.add(datosResources.getString("CAV.3.2.2"));//El campo Entidad es obligatorio si se va a incluir una contribuci&oacute;n
                    }
                }

                //fecha
                if (!errorContFecha) {
                    if (contribuciones[i].getFecha() != null) {
                        FechaVO fechaCont = contribuciones[i].getFecha();
                        DescripcionVO descCont = fechaCont.getDescripcion();

                        boolean fechaVacia = true;

                        if (fechaCont != null && fechaVacia) {
                            if ((fechaCont.getFecha() == null) || (fechaCont.getFecha().equals(""))) {
                                fechaVacia = false;
                            }
                        } else {
                            fechaVacia = false;
                        }

                        boolean descVacios = true;
                        String descFec = null;
                        if (descCont != null) {
                            for (int j = 0; j < descCont.getTextos().length && descVacios; j++) {
                                descFec = descCont.getTextos()[j].getTexto();
                                if (descFec == null && descFec.trim().equals("")) {
                                    descVacios = false;// si todos los campos descripcion son vacios
                                }
                            }
                        } else {
                            descVacios = false;
                        }

                        if (descVacios && fechaVacia && !errorFecha) {
                            //                           errorContFecha=true;
                            errorFecha = false;
                            mensajes.add(datosResources.getString("CAV.3.2.3"));//El campo FECHA    es obligatorio
                        } else if (!descVacios && fechaVacia && !errorFechaVacia && errorFecha) {
                            //                           errorContFecha=true;
                            errorFechaVacia = true;
                            mensajes.add(datosResources.getString("CAV.3.2.3.2"));//La descripci&oacute;n de la fecha es obligatoria si existe una fecha
                        } else if (descVacios && !fechaVacia && !errorDescVacia && errorFecha) {
                            //                           errorContFecha=true;
                            errorDescVacia = true;
                            mensajes.add(datosResources.getString("CAV.3.2.3.1"));//La fecha es obligatoria si existe una descripci&oacuete;n de fecha
                        }

                        //                        if(errorFecha && errorFechaVacia && errorDescVacia && errorMinutos)
                        //                           errorContFecha=true;
                    } else {
                        errorContFecha = true;
                        errorFecha = true;
                        mensajes.add(datosResources.getString("CAV.3.2.3"));//El campo FECHA    es obligatorio
                    }
                }
            }
        }

        //            EsquemaDeMetadatosVO[] esquemasMeta= mm.getEsquemas(); No es obligatorio
        //            //ESQUEMA METADATOS
        //            todosVacios=true;
        //            String esquema;
        //            if(esquemasMeta!=null && esquemasMeta.length>0){
        //               for(i=0;i<esquemasMeta.length && todosVacios;i++)
        //               {
        //                  esquema=esquemasMeta[i].getTexto();
        //                  if(esquema!=null && !esquema.trim().equals(""))
        //                  {
        //                     todosVacios=false;
        //                  }
        //               }
        //               if(todosVacios)
        //                  mensajes.add(datosResources.getString("CAV.3.3"));//El campo Esquema de metadatos es obligatorio
        //            }else{
        //               mensajes.add(datosResources.getString("CAV.3.3"));//El campo Esquema de metadatos es obligatorio
        //            }

        //IDIOMA
        if (mm.getIdioma() != null) {
            if (mm.getIdioma().getTexto() == null || mm.getIdioma().getTexto().equals(""))
                mensajes.add(datosResources.getString("CAV.3.4"));//El campo Idioma es obligatorio
        } else
            mensajes.add(datosResources.getString("CAV.3.4"));//El campo Idioma es obligatorio

    }

    //       -- TECHNICAL --
    if (lomAv.getTechnical() != null) {

        AvTechnicalVO tec = lomAv.getTechnical();

        //            NOMBRE

        if (tec.getRequisitos() != null && tec.getRequisitos().length > 0) {

            ok = true;
            int i = 0;
            while ((ok) && (i < tec.getRequisitos().length)) {
                AgregadorORVO[] cat = tec.getRequisitos()[i].getAgregadoresOR();
                if (cat != null && cat.length > 0) {
                    int j = 0;
                    while ((ok) && (j < cat.length)) {
                        String nombre = "";
                        String tipo = "";
                        String maxi = "";
                        String mini = "";
                        SourceValueVO sNombre = cat[j].getNombre();
                        SourceValueVO sTipo = cat[j].getTipo();
                        if (sNombre != null) {
                            nombre = sNombre.getValor();
                        }
                        if (sTipo != null) {
                            tipo = sTipo.getValor();
                        }
                        VersionMinVO min = cat[j].getVersionMin();
                        if (min != null && min.getTexto() != null) {
                            mini = min.getTexto().trim();
                        }

                        VersionMaxVO max = cat[j].getVersionMax();
                        if (max != null && max.getTexto() != null) {
                            maxi = max.getTexto().trim();
                        }

                        if (((nombre == null) || (nombre.equals("")))
                                && (((!tipo.equals(""))) || ((!mini.equals(""))) || ((!maxi.equals(""))))) {
                            mensajes.add(datosResources.getString("CAV.4.4.1.2"));
                            ok = false;
                        }

                        j++;
                    }

                }

                i++;
            }

            //TIPO
            ok = true;
            i = 0;
            while ((ok) && (i < tec.getRequisitos().length)) {
                AgregadorORVO[] cat = tec.getRequisitos()[i].getAgregadoresOR();
                if (cat != null && cat.length > 0) {
                    int j = 0;
                    while ((ok) && (j < cat.length)) {
                        String nombre = "";
                        String tipo = "";
                        String maxi = "";
                        String mini = "";
                        SourceValueVO sNombre = cat[j].getNombre();
                        SourceValueVO sTipo = cat[j].getTipo();
                        if (sNombre != null) {
                            nombre = sNombre.getValor();
                        }
                        if (sTipo != null) {
                            tipo = sTipo.getValor();
                        }
                        VersionMinVO min = cat[j].getVersionMin();
                        if (min != null && min.getTexto() != null) {
                            mini = min.getTexto().trim();
                        }

                        VersionMaxVO max = cat[j].getVersionMax();
                        if (max != null && max.getTexto() != null) {
                            maxi = max.getTexto().trim();
                        }
                        if (((tipo == null) || (tipo.equals("")))
                                && (((!nombre.equals(""))) || ((!mini.equals(""))) || ((!maxi.equals(""))))) {
                            mensajes.add(datosResources.getString("CAV.4.4.1.1"));
                            ok = false;
                        }

                        j++;
                    }
                }
                i++;

            }

            //DURACION
            boolean todosVacios = true;

            String descripcion;
            if (tec.getDuracion() != null) {
                if ((tec.getDuracion().getDescripcion() != null)
                        && (tec.getDuracion().getDescripcion().getTextos() != null)
                        && (tec.getDuracion().getDescripcion().getTextos().length > 0)) {
                    for (i = 0; i < tec.getDuracion().getDescripcion().getTextos().length && todosVacios; i++) {
                        descripcion = tec.getDuracion().getDescripcion().getTextos()[i].getTexto();
                        if (descripcion != null && !descripcion.trim().equals("")) {
                            todosVacios = false;
                        }
                    }
                }
            }
            boolean duracionVacia = true;
            if (tec.getDuracion() != null) {
                if ((tec.getDuracion().getDuracion() != null)
                        && (!tec.getDuracion().getDuracion().equals(""))) {
                    duracionVacia = false;
                }
            }

            if (todosVacios && !duracionVacia)
                mensajes.add(datosResources.getString("CAV.4.7.2"));//La descripci&oacute;n dela duraci&oacute;n es obligatoria si existe una duraci&oacute;n
            if (!todosVacios && duracionVacia)
                mensajes.add(datosResources.getString("CAV.4.7.1"));//La duraci&oacute;n es obligatoria si existe una descripci&oacute;n de duraci&oacute;n
        }
    }
    //USO EDUCATIVO
    if ((lomAv.getEducational() == null) || (lomAv.getEducational().length == 0)) {
        mensajes.add(datosResources.getString("CAV.5")); //Al menos debe existir una categor&iacute;a Uso Educativo
    } else {
        for (int indexEdu = 0; indexEdu < lomAv.getEducational().length; indexEdu++) {
            AvEducationalVO edu = lomAv.getEducational()[indexEdu];

            boolean todosVacios = true;
            int i;

            //TIPO DE RECURSO DE APRENDIZAJE
            String recurso = null;
            if (edu.getTiposrecursoedu() != null && edu.getTiposrecursoedu().length > 0) {
                for (i = 0; i < edu.getTiposrecursoedu().length && todosVacios; i++) {
                    recurso = edu.getTiposrecursoedu()[i].getValor();
                    if (recurso != null && !recurso.equals("")) {
                        todosVacios = false;
                    }
                }
                if (todosVacios)
                    mensajes.add(datosResources.getString("CAV.5.2.1") + " " + (indexEdu + 1));//El campo Tipo de recurso es obligatorio
            } else
                mensajes.add(datosResources.getString("CAV.5.2.1") + " " + (indexEdu + 1));//El campo Tipo de recurso es obligatorio
            //IDIOMA
            todosVacios = true;
            String idioma = null;
            if (edu.getIdiomas() != null && edu.getIdiomas().length > 0) {
                for (i = 0; i < edu.getIdiomas().length && todosVacios; i++) {
                    idioma = edu.getIdiomas()[i].getTexto();
                    if (idioma != null && !idioma.equals("")) {
                        todosVacios = false;
                    }
                }
                if (todosVacios)
                    mensajes.add(datosResources.getString("CAV.5.11.1") + " " + (indexEdu + 1));//El campo Idioma es obligatorio
            } else
                mensajes.add(datosResources.getString("CAV.5.11.1") + " " + (indexEdu + 1));//El campo Idioma es obligatorio

            //TIEMPO DE APRENDIZAJE
            //DESCRIPCIONES
            todosVacios = true;
            String descripcion;
            if (edu.getTiempoAprendizaje() != null && edu.getTiempoAprendizaje().getDescripcion() != null
                    && edu.getTiempoAprendizaje().getDescripcion().getTextos() != null
                    && edu.getTiempoAprendizaje().getDescripcion().getTextos().length > 0) {
                for (i = 0; i < edu.getTiempoAprendizaje().getDescripcion().getTextos().length
                        && todosVacios; i++) {
                    descripcion = edu.getTiempoAprendizaje().getDescripcion().getTextos()[i].getTexto();
                    if (descripcion != null && !descripcion.trim().equals("")) {
                        todosVacios = false;
                    }
                }
            }

            //DURACION
            boolean duracionVacia = true;
            if (edu.getTiempoAprendizaje() != null) {
                if ((edu.getTiempoAprendizaje().getDuracion() != null)
                        && (!edu.getTiempoAprendizaje().getDuracion().equals(""))) {
                    duracionVacia = false;
                }
            }

            if (todosVacios && !duracionVacia)
                mensajes.add(datosResources.getString("CAV.5.9.2.1") + " " + (indexEdu + 1));//La descripci&oacute;n dela duraci&oacute;n es obligatoria si existe una duraci&oacute;n
            if (!todosVacios && duracionVacia)
                mensajes.add(datosResources.getString("CAV.5.9.1.1") + " " + (indexEdu + 1));//La duraci&oacute;n es obligatoria si existe una descripci&oacute;n de duraci&oacute;n

        }
    }

    // -- DERECHOS --
    if (lomAv.getDerechos() == null) {
        mensajes.add(datosResources.getString("CAV.6"));
    } else {
        //            COPYRIGHT 
        AvRightsVO de = lomAv.getDerechos();
        if (de != null && de.getDerechosDeAutor() != null) {
            String copyright = de.getDerechosDeAutor().getValor();
            if (copyright == null || copyright.equals("")) {
                mensajes.add(datosResources.getString("CAV.6.2"));
            }
        }

        //ACCESO
        if (de != null && de.getAcceso() != null && de.getAcceso().getTipo() != null) {
            String tipoAcceso = de.getAcceso().getTipo().getValor();
            if (tipoAcceso == null || tipoAcceso.equals("")) {
                mensajes.add(datosResources.getString("CAV.6.4.1"));
            }
        }

        //AMBITO
        if (de != null && de.getAcceso() != null && de.getAcceso().getDescripcion() != null
                && de.getAcceso().getDescripcion().getTextos() != null
                && de.getAcceso().getDescripcion().getTextos().length > 0) {
            if (!de.getAcceso().getTipo().getValor().equalsIgnoreCase("universal")) {
                String comunidades = de.getAcceso().getDescripcion().getTextos()[0].getTexto();
                if (comunidades == null || comunidades.trim().equals("")) {
                    mensajes.add(datosResources.getString("CAV.6.4.2"));//Es necesario seleccionar al menos un &aacute;mbito
                }
            }
        }
    }

    // -- RELACION --
    if ((lomAv.getRelaciones() != null) && (lomAv.getRelaciones().length > 0)) {

        for (int indexRelacion = 0; indexRelacion < lomAv.getRelaciones().length; indexRelacion++) {
            AvRelationVO re = lomAv.getRelaciones()[indexRelacion];

            ok = true;

            //TIPO
            if ((re.getTipo() != null)) {
                String tip = re.getTipo().getValor();
                if ((tip == null) || (tip.equals("")))
                    mensajes.add(datosResources.getString("CAV.7.1.7") + (indexRelacion + 1));
            }

            //IDENTIFICADOR

            if ((ok) && (re.getRecurso() != null) && (re.getRecurso().getIdentificador() != null)
                    && (re.getTipo() != null)) {
                String cat = re.getRecurso().getIdentificador().getCatalogo();
                String ent = re.getRecurso().getIdentificador().getEntrada();
                String tip = re.getTipo().getValor();
                if (((cat == null) || (cat.trim().equals(""))) && ((ent == null) || (ent.trim().equals(""))))//Si existe una entrada, un catlogo es obligatorio
                    mensajes.add(datosResources.getString("CAV.7.3.7") + " " + (indexRelacion + 1));
                if (!mensajes.equals("")) {
                    ok = false;
                }

            }
            //         CATALOGOS
            ok = true;
            if ((ok) && (re.getRecurso() != null) && (re.getRecurso().getIdentificador() != null)
                    && (re.getTipo() != null)) {
                String cat = re.getRecurso().getIdentificador().getCatalogo();
                String ent = re.getRecurso().getIdentificador().getEntrada();
                String tip = re.getTipo().getValor();
                if (((cat == null) || (cat.trim().equals(""))) && ((ent != null) && (!ent.trim().equals(""))))//Si existe una entrada, un catlogo es obligatorio
                    mensajes.add(datosResources.getString("CAV.7.3.1.7") + " " + (indexRelacion + 1));

                if (!mensajes.equals("")) {
                    ok = false;
                }

            }

            //ENTRADAS
            if ((ok) && (re.getRecurso() != null) && (re.getRecurso().getIdentificador() != null)) {
                String cat = re.getRecurso().getIdentificador().getCatalogo();
                String ent = re.getRecurso().getIdentificador().getEntrada();

                if (((ent == null) || (ent.trim().equals(""))) && ((cat != null) && (!cat.trim().equals(""))))//Si existe un catlogo, una entrada es obligatoria
                    mensajes.add(datosResources.getString("CAV.7.3.2.7") + " " + (indexRelacion + 1));

                if (!mensajes.equals("")) {
                    ok = false;
                }

            }
        }
    }

    // -- ANOTACION --
    if ((lomAv.getAnotaciones() != null) && (lomAv.getAnotaciones().length > 0)) {
        int i;
        boolean todosVacios = true;

        for (int indexAnotacion = 0; indexAnotacion < lomAv.getAnotaciones().length; indexAnotacion++) {

            AvAnnotationVO an = lomAv.getAnotaciones()[indexAnotacion];
            //ENTIDAD
            if (an.getEntidad() != null) {
                String entidad = an.getEntidad().getTexto();
                if ((entidad == null) || (entidad.trim().equals(""))) {
                    mensajes.add(datosResources.getString("CAV.8.1.8") + " " + (indexAnotacion + 1));//El campo Entidad es obligatorio
                }
            }

            //FECHA
            boolean fechaVacia = false;
            if (an.getFecha() != null) {
                String fecha = an.getFecha().getFecha();
                if ((fecha == null) || (fecha.equals(""))) {
                    fechaVacia = true;
                }
            }

            boolean descVacios = false;
            if (an.getFecha() != null && an.getFecha().getDescripcion() != null
                    && an.getFecha().getDescripcion().getTextos() != null
                    && an.getFecha().getDescripcion().getTextos().length > 0) {
                String descFec = an.getFecha().getDescripcion().getTextos()[0].getTexto();
                if ((descFec == null) || (descFec.trim().equals(""))) {
                    descVacios = true;
                }
            }

            if (descVacios && fechaVacia) {
                mensajes.add(datosResources.getString("CAV.8.2.8") + " " + (indexAnotacion + 1));//El campo FECHA es obligatorio
            } else if (descVacios && !fechaVacia) {
                mensajes.add(datosResources.getString("CAV.8.2.2.8") + " " + (indexAnotacion + 1));//La descripci&oacute;n de la fecha es obligatoria si existe una fecha
            } else if (!descVacios && fechaVacia) {
                mensajes.add(datosResources.getString("CAV.8.2.1.8") + " " + (indexAnotacion + 1));//La fecha es obligatoria si existe una descripci&oacuete;n de fecha
            }

            //DESCRIPCION
            String desc;
            if (an.getDescripcion() != null && an.getDescripcion().getTextos() != null
                    && an.getDescripcion().getTextos().length > 0) {
                for (i = 0; i < an.getDescripcion().getTextos().length && todosVacios; i++) {
                    desc = an.getDescripcion().getTextos()[i].getTexto();
                    if (desc != null && !desc.trim().equals("")) {
                        todosVacios = false;
                    }
                }
                if (todosVacios)
                    mensajes.add(datosResources.getString("CAV.8.3.8") + " " + (indexAnotacion + 1));//El campo Descripci&oacute;n es obligatorio
            } else
                mensajes.add(datosResources.getString("CAV.8.3.8") + " " + (indexAnotacion + 1));//El campo Descripci&oacute;n es obligatorio
        }
    }

    if ((lomAv.getClasificaciones() != null) && (lomAv.getClasificaciones().length > 0)) {
        for (int indexClasificacion = 0; indexClasificacion < lomAv
                .getClasificaciones().length; indexClasificacion++) {
            AvClassificationVO cl = lomAv.getClasificaciones()[indexClasificacion];

            if (cl.getProposito() != null) {
                if ((cl.getProposito().getValor() == null) || (cl.getProposito().getValor().equals(""))) {
                    mensajes.add(datosResources.getString("CAV.9.1.9") + " " + (indexClasificacion + 1));
                }
            }
            if (cl.getRutasTaxonomicas() != null && cl.getRutasTaxonomicas().length > 0) {
                for (int i = 0; i < cl.getRutasTaxonomicas().length; i++) {
                    if (cl.getRutasTaxonomicas()[i].getFuente() != null
                            && cl.getRutasTaxonomicas()[i].getFuente().getTextos() != null
                            && cl.getRutasTaxonomicas()[i].getFuente().getTextos().length > 0) {
                        String source = cl.getRutasTaxonomicas()[i].getFuente().getTextos()[0].getTexto();
                        if ((source == null) || (source.trim().equals(""))) {
                            mensajes.add(
                                    datosResources.getString("CAV.9.2.1.9") + " " + (indexClasificacion + 1));
                        }
                    }
                    if (cl.getRutasTaxonomicas()[i].getTaxones() != null
                            && cl.getRutasTaxonomicas()[i].getTaxones().length > 0) {
                        for (int j = 0; j < cl.getRutasTaxonomicas()[i].getTaxones().length; j++) {
                            if (cl.getRutasTaxonomicas()[i].getTaxones()[j].getId() != null
                                    && cl.getRutasTaxonomicas()[i].getTaxones()[j].getEntry() != null
                                    && cl.getRutasTaxonomicas()[i].getTaxones()[j].getEntry()
                                            .getTextos() != null
                                    && cl.getRutasTaxonomicas()[i].getTaxones()[j].getEntry()
                                            .getTextos().length > 0) {
                                String id = cl.getRutasTaxonomicas()[i].getTaxones()[j].getId().getTexto();
                                String entry = cl.getRutasTaxonomicas()[i].getTaxones()[j].getEntry()
                                        .getTextos()[0].getTexto();
                                if ((id == null) || (id.trim().equals(""))
                                        || ((entry == null) || (entry.trim().equals("")))) {
                                    mensajes.add(datosResources.getString("CAV.9.2.2.9") + " "
                                            + (indexClasificacion + 1));
                                }
                            }
                        }
                    } else {
                        mensajes.add(datosResources.getString("CAV.9.2.2.9") + " " + (indexClasificacion + 1));
                    }
                }
            } else {
                mensajes.add(datosResources.getString("CAV.9.2") + " " + (indexClasificacion + 1));
            }
        }
    }

    if (mensajes.size() > 0) //hay errores
    {
        resultado = "NoValido";
        form.setMensajesError(mensajes);
        //            this.saveErrorMessage(request,"catalogadorAvanzado.exportar.error.novalido");
    } else {
        resultado = "Valido";
    }

    return resultado;
}

From source file:org.apache.hadoop.hive.ql.optimizer.SetReducerParallelism.java

@SuppressWarnings("unchecked")
@Override/*w  w  w.  java2 s .co m*/
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procContext, Object... nodeOutputs)
        throws SemanticException {

    OptimizeTezProcContext context = (OptimizeTezProcContext) procContext;

    ReduceSinkOperator sink = (ReduceSinkOperator) nd;
    ReduceSinkDesc desc = sink.getConf();

    long bytesPerReducer = context.conf.getLongVar(HiveConf.ConfVars.BYTESPERREDUCER);
    int maxReducers = context.conf.getIntVar(HiveConf.ConfVars.MAXREDUCERS);
    int constantReducers = context.conf.getIntVar(HiveConf.ConfVars.HADOOPNUMREDUCERS);

    if (context.visitedReduceSinks.contains(sink)) {
        // skip walking the children
        LOG.debug("Already processed reduce sink: " + sink.getName());
        return true;
    }

    context.visitedReduceSinks.add(sink);

    if (desc.getNumReducers() <= 0) {
        if (constantReducers > 0) {
            LOG.info("Parallelism for reduce sink " + sink + " set by user to " + constantReducers);
            desc.setNumReducers(constantReducers);
        } else {
            long numberOfBytes = 0;

            // we need to add up all the estimates from the siblings of this reduce sink
            for (Operator<? extends OperatorDesc> sibling : sink.getChildOperators().get(0)
                    .getParentOperators()) {
                if (sibling.getStatistics() != null) {
                    numberOfBytes = StatsUtils.safeAdd(numberOfBytes, sibling.getStatistics().getDataSize());
                } else {
                    LOG.warn("No stats available from: " + sibling);
                }
            }

            int numReducers = Utilities.estimateReducers(numberOfBytes, bytesPerReducer, maxReducers, false);
            LOG.info("Set parallelism for reduce sink " + sink + " to: " + numReducers);
            desc.setNumReducers(numReducers);

            final Collection<ExprNodeDescEqualityWrapper> keyCols = ExprNodeDescEqualityWrapper
                    .transform(desc.getKeyCols());
            final Collection<ExprNodeDescEqualityWrapper> partCols = ExprNodeDescEqualityWrapper
                    .transform(desc.getPartitionCols());
            if (keyCols != null && keyCols.equals(partCols)) {
                desc.setReducerTraits(EnumSet.of(UNIFORM, AUTOPARALLEL));
            } else {
                desc.setReducerTraits(EnumSet.of(AUTOPARALLEL));
            }
        }
    } else {
        LOG.info("Number of reducers determined to be: " + desc.getNumReducers());
    }

    return false;
}

From source file:org.apache.ivory.resource.AbstractEntityManager.java

/**
 * Returns the list of entities registered of a given type.
 * /*  w ww  . j  a v  a2  s.  co m*/
 * @param type
 * @return String
 */
public EntityList getDependencies(String type) {
    try {
        EntityType entityType = EntityType.valueOf(type.toUpperCase());
        Collection<String> entityNames = configStore.getEntities(entityType);
        if (entityNames == null || entityNames.equals("")) {
            return new EntityList(new Entity[] {});
        }
        Entity[] entities = new Entity[entityNames.size()];
        int index = 0;
        for (String entityName : entityNames) {
            entities[index++] = configStore.get(entityType, entityName);
        }
        return new EntityList(entities);
    } catch (Exception e) {
        LOG.error("Unable to get list for entities for (" + type + ")", e);
        throw IvoryWebException.newException(e, Response.Status.BAD_REQUEST);
    }
}

From source file:org.apache.nifi.connectable.StandardConnection.java

@Override
public void setRelationships(final Collection<Relationship> newRelationships) {
    final Collection<Relationship> currentRelationships = relationships.get();
    if (currentRelationships.equals(newRelationships)) {
        return;/*  www  . ja  v  a  2  s.  c om*/
    }

    if (getSource().isRunning()) {
        throw new IllegalStateException(
                "Cannot update the relationships for Connection because the source of the Connection is running");
    }

    try {
        this.relationships.set(new ArrayList<>(newRelationships));
        getSource().updateConnection(this);
    } catch (final RuntimeException e) {
        this.relationships.set(currentRelationships);
        throw e;
    }
}

From source file:org.caleydo.vis.lineup.model.CategoricalRankColumnModel.java

public void setFilter(Collection<CATEGORY_TYPE> filter, boolean isFilterNA, boolean isGlobalFilter,
        boolean isRankIndependentFilter) {
    if (filter.equals(selection) && isFilterNA == this.filterNA && this.isGlobalFilter == isGlobalFilter
            && this.isRankIndependentFilter == isRankIndependentFilter)
        return;/*from  w  w  w.j  a v  a  2s  .c  om*/
    invalidAllFilter();
    this.selection.clear();
    this.selection.addAll(filter);
    this.isGlobalFilter = isGlobalFilter;
    this.filterNA = isFilterNA;
    this.isRankIndependentFilter = isRankIndependentFilter;
    propertySupport.firePropertyChange(PROP_FILTER, false, true);
}

From source file:org.caleydo.vis.lineup.model.MultiCategoricalRankColumnModel.java

protected void setFilter(Collection<CATEGORY_TYPE> filter, boolean filterNA, boolean isGlobalFilter,
        boolean isRankIndependentFilter) {
    if (filter.equals(selection) && filterNA == this.filterNA && this.isGlobalFilter == isGlobalFilter
            && this.isRankIndependentFilter == isRankIndependentFilter)
        return;//www  . java  2  s.  co m
    invalidAllFilter();
    this.selection.clear();
    this.selection.addAll(filter);
    this.isGlobalFilter = isGlobalFilter;
    this.filterNA = filterNA;
    this.isRankIndependentFilter = isRankIndependentFilter;
    propertySupport.firePropertyChange(PROP_FILTER, false, true);
}

From source file:org.coode.proximitymatrix.ClusteringProximityMatrix.java

public ClusteringProximityMatrix<O> agglomerate(PairFilter<Collection<? extends O>> filter) {
    Set<Collection<? extends O>> objects = this.getObjects();
    Pair<Collection<? extends O>> minimumDistancePair = this.getMinimumDistancePair();
    List<Collection<? extends O>> elementList = new ArrayList<Collection<? extends O>>(
            minimumDistancePair.getElements());
    Collection<? extends O> a = elementList.get(0);
    Collection<? extends O> b = elementList.get(1);
    objects.removeAll(minimumDistancePair.getElements());
    List<Collection<? extends O>> newObjects = new ArrayList<Collection<? extends O>>(objects);
    List<O> merger = new ArrayList<O>();
    // int firstMergedIndex = this.getRowIndex(a);
    // int secondMergedIndex = this.getRowIndex(b);
    merger.addAll(minimumDistancePair.getFirst());
    merger.addAll(minimumDistancePair.getSecond());
    newObjects.add(merger);/*w w w .j a v  a  2 s . co m*/
    double[][] newDistances = new double[newObjects.size()][newObjects.size()];
    int i = 0;
    final int size = newObjects.size();
    for (int index = 0; index < size; index++) {
        Collection<? extends O> aCollection = newObjects.get(index);
        // int rowIndex = aCollection.equals(merger) ? -1
        // : i < firstMergedIndex ? i
        // : i + 1 < secondMergedIndex ? i + 1 : i + 2;
        int rowIndex = aCollection.equals(merger) ? -1 : this.getRowIndex(aCollection);
        int j = 0;
        for (Collection<? extends O> anotherCollection : newObjects) {
            // int columnIndex = anotherCollection.equals(merger) ? -1
            // : j < firstMergedIndex ? j
            // : j + 1 < secondMergedIndex ? j + 1 : j + 2;
            int columnIndex = anotherCollection.equals(merger) ? -1 : this.getColumnIndex(anotherCollection);
            if (i == j) {
                newDistances[i][j] = 0;
            } else {
                if (rowIndex != -1 && columnIndex != -1) {
                    newDistances[i][j] = this.getEntry(rowIndex, columnIndex);
                } else {
                    // Apply the formula
                    Collection<? extends O> q = rowIndex != -1 ? aCollection : anotherCollection;
                    double distanceAB = this.getDistance(a, b);
                    double distanceAQ = this.getDistance(a, q);
                    double distanceBQ = this.getDistance(b, q);
                    double newProximity = this.getProximityMeasureFactory()
                            .getProximityMeasure(a.size(), b.size(), q.size())
                            .distance(distanceAQ, distanceBQ, distanceAB);
                    newDistances[i][j] = newProximity;
                }
            }
            j++;
        }
        i++;
    }
    SimpleProximityMatrix<Collection<? extends O>> simpleProximityMatrix = new SimpleProximityMatrix<Collection<? extends O>>(
            newObjects, newDistances, filter, PairFilterBasedComparator.build(filter, newObjects,
                    new TableDistance<Collection<? extends O>>(newObjects, newDistances)));
    History<Collection<? extends O>> newHistory = this.getHistory();
    HistoryItem<Collection<? extends O>> newItem = this.getHistoryItemFactory().create(minimumDistancePair,
            newObjects);
    newHistory.add(newItem);
    ClusteringProximityMatrix<O> toReturn = new ClusteringProximityMatrix<O>(simpleProximityMatrix,
            this.getProximityMeasureFactory(), newHistory, this.getHistoryItemFactory());
    return toReturn;
}