/** * Helper method. Create Map with K=Template Name, V=Descriptor.<br> * * This associates a property descriptor with the path of its respective template for faster lookups.<br> */ private Map<String, PropertyFileDescriptor> loadDescriptorsForLocale(Locale locale) { Map<String, PropertyFileDescriptor> ret = new LinkedHashMap<String, PropertyFileDescriptor>(); List<PropertyFileDescriptor> descriptors = null; /* * Load the List of descriptors available for this locale.<br> * Note that a null locale implies that either no source language was selected, or the * selected source language is the template language.<br> */ if (locale == null) { descriptors = projectVersion.getTemplate().getDescriptors(); } else { descriptors = projectVersion.getProjectLocale(locale).getDescriptors(); } for (PropertyFileDescriptor descriptor : descriptors) { ret.put(descriptor.isMaster() ? descriptor.getLocation().toString() : descriptor.getMaster().getLocation().toString(), descriptor); } return ret; }
protected PropertyFileDescriptor findDescriptor(URI path) { PropertyScanner scanner = PropertyResourceUtil.createScanner(this); Locale variant = scanner.getLocale(new File(path.path())); ProjectLocale locale = variant == null ? getTemplate() : getProjectLocale(variant); if (locale == null) return null; EList<PropertyFileDescriptor> descriptors = locale.getDescriptors(); for (PropertyFileDescriptor descriptor : descriptors) { if (path.equals(descriptor.getLocation())) { return descriptor; } } return null; }
protected PropertyFileDescriptor createDescriptor(ProjectLocale projectLocale, URI childURI) { PropertyFileDescriptor fileDescriptor = PropertiesFactory.eINSTANCE.createPropertyFileDescriptor(); fileDescriptor.setLocation(childURI); fileDescriptor.setName(childURI.lastSegment()); fileDescriptor.setVariant(projectLocale.getLocale()); projectLocale.getDescriptors().add(fileDescriptor); Resolvable<?, Resolvable<?, ?>> parent = getOrCreateParent(projectLocale, childURI); parent.getChildren().add(fileDescriptor); return fileDescriptor; }
for (PropertyFileDescriptor descriptor : locale.getDescriptors()) { for (Review review : descriptor.getReviews()) { if (Review.KIND_SUGGESTION.equals(review.getReviewType())) for (PropertyFileDescriptor descriptor : locale.getDescriptors()) { Collection<Review> currentReviews = reviews.get(descriptor.getLocation()); descriptor.getReviews().addAll(currentReviews);
List<PropertyFileDescriptor> descriptors = version.getProjectLocale(locale).getDescriptors();
@SuppressWarnings({ "unchecked", "rawtypes" }) public static void addNewLocalizedDescriptor(PropertyFileDescriptor descriptor, ProjectLocale locale) { if (!descriptor.eIsSet(PropertiesPackage.Literals.PROPERTY_FILE_DESCRIPTOR__LOCATION)) throw new IllegalArgumentException("Property File Descriptor location is not set"); ProjectVersion version = locale.getParent(); ProjectLocale templateLocale = version.getTemplate(); URI templateResourceLocation = computeTemplateResourceLocation(locale.getLocale(), descriptor.getLocation(), templateLocale.getLocale(),version); Resolvable<?, ?> resolved = templateLocale.resolveChild(templateResourceLocation); PropertyFileDescriptor template = null; if (resolved instanceof PropertyFileDescriptor) { template = (PropertyFileDescriptor) resolved; } if (template == null) throw new IllegalArgumentException("Template property " + templateResourceLocation + " doesn't exist"); Resolvable container = getOrCreateFolder(locale, descriptor.getLocation().trimSegments(1).segments()); if (container.getChild(descriptor.getLocation().lastSegment()) != null) { PropertyFileDescriptor child = (PropertyFileDescriptor) container.getChild(descriptor.getLocation().lastSegment()); child.setMaster(null); container.getChildren().set(container.getChildren().indexOf(child), descriptor); locale.getDescriptors().remove(child); } else { container.getChildren().add(descriptor); } descriptor.setMaster(template); locale.getDescriptors().add(descriptor); }
public static void removeDescriptor(PropertyFileDescriptor descriptor) { if (descriptor.isMaster()) { EList<PropertyFileDescriptor> derivedDescriptors = descriptor.getDerivedDescriptors(); for (PropertyFileDescriptor derived : derivedDescriptors) { derived.setProjectLocale(null); Resolvable<?, ?> parent = derived.getParent(); if(parent!=null) { //update the percentage of all derived resources parent.updatePercentComplete(); if(parent.getChildren().size()==1 && parent instanceof ResourceFolder) { deleteFolder((ResourceFolder) parent); } } EcoreUtil.remove(derived); } } else { descriptor.setMaster(null); } Resolvable<?, ?> parent = descriptor.getParent(); if(parent!=null && parent.getChildren().size()==1 && parent instanceof ResourceFolder) deleteFolder((ResourceFolder) parent); EcoreUtil.remove(descriptor); descriptor.getProjectLocale().getDescriptors().remove(descriptor); }
if (translatedDescriptor == null) { translatedDescriptor = PropertiesFactory.eINSTANCE.createPropertyFileDescriptor(); locale.getDescriptors().add(translatedDescriptor); parent.getChildren().add(translatedDescriptor); parent.getChildren().add(descriptor); descriptor.setName(descriptor.getLocation().lastSegment()); version.getTemplate().getDescriptors().add(descriptor); descriptor.updatePercentComplete();
getProjectVersion().getTemplate().getDescriptors().add(descriptor);
EList<PropertyFileDescriptor> descriptors = locale.getDescriptors(); for (PropertyFileDescriptor propertyFileDescriptor : descriptors) { firePropertiesAdded(propertyFileDescriptor, false); EList<PropertyFileDescriptor> descriptors = locale.getDescriptors(); EList<PropertyFileDescriptor> descriptors = locale.getDescriptors(); for (PropertyFileDescriptor propertyFileDescriptor : descriptors) { firePropertiesAdded(propertyFileDescriptor, false);
if (!exists) { descriptor = createDescriptor(getProjectVersion().getTemplate(),location); getProjectVersion().getTemplate().getDescriptors().add(descriptor);
private static void createMissingChildren(ProjectLocale template, ProjectLocale other) { EList<PropertyFileDescriptor> descriptors = template.getDescriptors(); for (PropertyFileDescriptor descriptor : descriptors) { URI derivedLocation = computeLocaleResourceLocation(other.getLocale(), other.getParent(), descriptor.getLocation()); Resolvable<?, ?> child = other.resolveChild(derivedLocation); if(child==null){ Resolvable<?, ?> folder = getOrCreateFolder(other, derivedLocation.trimSegments(1).segments()); PropertyFileDescriptor localeDescriptor = PropertiesFactory.eINSTANCE.createPropertyFileDescriptor(); localeDescriptor.setMaster(descriptor); localeDescriptor.setVariant(other.getLocale()); localeDescriptor.setLocation(derivedLocation); localeDescriptor.setProjectLocale(other); localeDescriptor.setParent(folder); localeDescriptor.setName(URI.decode(derivedLocation.lastSegment())); } } }