private void extractVariables() { if (leafDataset == null) leafDataset = findLeafDataset(dataset); if (leafDataset == null) return; ThreddsMetadata.Variables vars; try { vars = MetadataExtractor.extractVariables(leafDataset); } catch (IOException e) { return; } if (vars != null) { ThreddsMetadata tm = dataset.getLocalMetadataInheritable(); List<ThreddsMetadata.Variables> varsList = tm.getVariables(); boolean replaced = false; for (int i = 0; i < varsList.size(); i++) { ThreddsMetadata.Variables vs = varsList.get(i); if (vs.getVocabulary().equals(vars.getVocabulary())) { varsList.set(i, vars); // replace replaced = true; break; } } if (!replaced) tm.addVariables(vars); variablesFld.setValue(vars.getVariableList()); setMode(variablesFld, 1); } }
/** * get Variables from the specified vocabulary * * @param vocab look for this vocabulary * @return Variables from the specified vocabulary, may be null */ public ThreddsMetadata.Variables getVariables(String vocab) { ThreddsMetadata.Variables result = new ThreddsMetadata.Variables(vocab, null, null, null, null); if (variables == null) return result; for (ThreddsMetadata.Variables vs : variables) { if (vs.getVocabulary().equals(vocab)) result.getVariableList().addAll(vs.getVariableList()); } return result; }