public static Locale getLocaleFromString(String locale) { return (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, locale); } }
private Locale createVariant(String localeString) { return (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, localeString); }
@Override public Locale getLocale(File propertyFile) { Matcher matcher = LOCALE_PATTERN.matcher(propertyFile.getName()); if (matcher.matches()) { String actualLocale = matcher.group(2); if(actualLocale==null || actualLocale.isEmpty()) return null; actualLocale = actualLocale.substring(1); return (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, actualLocale); } return null; }
@SuppressWarnings("unchecked") @Override public C convertToObject(String value, Locale locale) { EClassifier classifier = PropertiesPackage.eINSTANCE.getEClassifier(dataType); if (classifier instanceof EDataType) { EDataType dataType = (EDataType) classifier; return (C) PropertiesFactory.eINSTANCE.createFromString(dataType, value); } return null; }
@Override public Map<Locale, File> findTranslations(File template, ScanConfiguration config) { Map<Locale, File> results = new HashMap<Locale, File>(); Pattern filePattern = buildPatternFrom(template.getName()); File folder = template.getParentFile(); File[] files = folder.listFiles(); if(files==null) return results; for (File file : files) { if(file.equals(template)) continue; Matcher matcher = filePattern.matcher(file.getName()); if(matcher.matches()) { String localeString = matcher.group(1).substring(1); Locale locale = (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, localeString); results.put(locale, file); } } return results; }
@Override public Object getDisplayValue(String object) { if(TEMPLATE_ID.equals(object)) return "Template"; Locale locale = (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, object); String displayName = locale == null ? "Template" : locale.getDisplayName(getSession().getLocale()); return displayName; }
/** * extracts the target locale from a property annotation. * @param property * @return */ private Locale extractTargetLocale(Property property) { PropertyAnnotation annotation = property.findAnnotation(PropertyAnnotations.ANNOTATION_LANGUAGE); if(annotation==null) return null; String localeString = annotation.getValues().get(PropertyAnnotations.TARGET_LANGUAGE); if(localeString==null) return null; return (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, localeString); }
/** * calculates a diff between existing locales and selected ones. * Deletes and adds ProjectLocales as needed * @param object * @param input */ protected void applyLocaleList(List<String> object, IModel<ProjectVersion> input) { Set<String> locales = new HashSet<String>(object); ProjectVersion version = input.getObject(); List<ProjectLocale> projectLocales = version.getChildren(); List<ProjectLocale> toDelete = new ArrayList<>(); for (Iterator<ProjectLocale> iterator = projectLocales.iterator(); iterator.hasNext();) { ProjectLocale projectLocale = iterator.next(); if(projectLocale.isMaster()) continue; if(!locales.remove(projectLocale.getName())) { toDelete.add(projectLocale); } } for (ProjectLocale projectLocale : toDelete) { LOGGER.info("Deleting ProjectLocale {} from {}",projectLocale.getName(), version.fullPath()); EcoreUtil.delete(projectLocale, true); } for (String locale : locales) { ProjectLocale projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale((Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, locale)); LOGGER.info("Adding ProjectLocale {} to {}",projectLocale.getName(), version.fullPath()); PropertyResourceUtil.addNewLocale(projectLocale, input.getObject()); } }
Locale locale = (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, document.get(QueryService.FIELD_LOCALE)); MatchResult match = new MatchResult(document.get(QueryService.FIELD_VALUE), locale, uri); resultSet.add(match);
@Override protected void onUpdate(AjaxRequestTarget target) { target.add(languageField); target.add(countryField); target.add(variantField); String localeString = choice.getModelObject(); if(localeString==null || TEMPLATE_ID.equals(localeString)) { languageField.setModelObject(""); countryField.setModelObject(""); variantField.setModelObject(""); } else { Locale locale = (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, localeString); languageField.setModelObject(locale.getLanguage()); countryField.setModelObject(locale.getCountry()); variantField.setModelObject(locale.getVariant()); } } });
@Override public Resolvable resolveChild(URI path) { if (path.segmentCount() == 0 || relativePath().equals(path)) return this; String localeSegment = path.segment(0); ProjectLocale projectLocale = null; if (localeSegment.equals("template")) projectLocale = getTemplate(); else { Locale locale = (Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, localeSegment); if (locale == null) return null; projectLocale = getProjectLocale(locale); } if (path.segmentCount() == 1) return projectLocale; String[] segments = path.segments(); String[] remainder = new String[segments.length - 1]; System.arraycopy(segments, 1, remainder, 0, remainder.length); URI shorterURI = URI.createHierarchicalURI(remainder, null, null); return projectLocale.resolveChild(shorterURI); }
@Override public ProjectVersion apply(ProjectVersion object) { ProjectLocale locale = PropertiesFactory.eINSTANCE.createProjectLocale(); locale.setName(uri.lastSegment()); locale.setLocale((Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, uri.lastSegment())); PropertyResourceUtil.addNewLocale(locale, object); return object; } });