public boolean partialScan(File baseDir, PropertyScanner scanner, ScanConfiguration config, File singleFile) { SingleFileAcceptor acceptor = new SingleFileAcceptor(); partialScan(acceptor, baseDir, scanner, config, singleFile); return acceptor.isMatch(); }
@Override public void newMatch(File file) { if(getPropertyScanner().isTemplate(file, getScanConfig().getMasterLocale())) newTemplateMatch(file); else if(getPropertyScanner().isTranslation(file, getScanConfig())) newTranslationMatch(file); }
private Resolvable<?, Resolvable<?, ?>> getOrCreateParent(ProjectLocale projectLocale, URI childURI) { Resolvable<?, Resolvable<?, ?>> currentParent = projectLocale; String[] segments = childURI.segments(); for (int i = 0; i < segments.length - 1; i++) { currentParent = getOrCreate(currentParent, URI.decode(segments[i])); } return currentParent; }
private void newTranslationMatch(File file) { File template = getPropertyScanner().findTemplate(file, getScanConfig()); //don't do anything if the template doesn't exist yet if(template==null || !template.isFile()) return; Locale locale = getPropertyScanner().getLocale(file); ProjectLocale projectLocale = getOrCreateProjectLocale(locale); URI location = calculateLocation(file); //Test if this descriptor is already available PropertyFileDescriptor descriptor = (PropertyFileDescriptor) projectLocale.resolveChild(location); if(descriptor==null) { descriptor = createDescriptor(projectLocale, location); } // load file to initialize statistics; PropertyFile propertyFile = descriptor.loadProperties(); descriptor.setKeys(propertyFile.getProperties().size()); Resolvable<?, ?> resolvable = getProjectVersion().getTemplate().resolveChild(calculateLocation(template)); if (resolvable instanceof PropertyFileDescriptor) { PropertyFileDescriptor templateDescriptor = (PropertyFileDescriptor) resolvable; descriptor.setMaster(templateDescriptor); } descriptor.updatePercentComplete(); }
@Override public void newMatch(File file) { URI location = calculateLocation(file); if (getProjectVersion().getTemplate() == null) { getProjectVersion().setTemplate(PropertiesFactory.eINSTANCE.createProjectLocale()); getProjectVersion().getTemplate().setName("template"); getProjectVersion().getChildren().add(getProjectVersion().getTemplate()); PropertyFileDescriptor descriptor = createDescriptor(getProjectVersion().getTemplate(), location); getProjectVersion().getTemplate().getDescriptors().add(descriptor); descriptor.updatePercentComplete(); Locale locale = getPropertyScanner().getLocale(file); if (locale!=null) { descriptor.setVariant(locale); Map<Locale, File> translations = getPropertyScanner().findTranslations(file, getScanConfig()); Set<Entry<Locale, File>> set = translations.entrySet(); for (Entry<Locale, File> entry : set) { ProjectLocale projectLocale = getOrCreateProjectLocale(entry.getKey()); URI childURI = calculateLocation(entry.getValue()); PropertyFileDescriptor fileDescriptor = createDescriptor(projectLocale, childURI); fileDescriptor.setMaster(descriptor);
public void partialScan(PropertyFileAcceptor acceptor, File baseDir, PropertyScanner scanner, ScanConfiguration config, File singleFile) { Project antProject = new org.apache.tools.ant.Project(); FileSet fs = createFileSet(config); String[] excludes = fs.mergeExcludes(antProject); if(excludes!=null) { for (String exclude : excludes) { if(SelectorUtils.match(normalizePattern(exclude), singleFile.getPath())) return; } } String[] includes = fs.mergeIncludes(antProject); if(includes==null) return; for (String include : includes) { if(SelectorUtils.match(normalizePattern(include), singleFile.getPath())) { if (baseDir.exists()) { // if(scanner.isTemplate(singleFile, config)) { acceptor.newMatch(singleFile); // } } break; } } }
public void fullScan(PropertyFileAcceptor acceptor, File baseDir, PropertyScanner scanner, ScanConfiguration config, IProgressMonitor monitor) { FileSet fs = createFileSet(config); fs.setDir(baseDir); SubMonitor subMon = SubMonitor.convert(monitor, "Scanning", 100); String masterLocale = config.getMasterLocale(); if (masterLocale != null && masterLocale.isEmpty()) masterLocale = null; if (baseDir.exists()) { DirectoryScanner ds = fs.getDirectoryScanner(new org.apache.tools.ant.Project()); subMon.worked(10); String[] files = ds.getIncludedFiles(); subMon.setWorkRemaining(files.length); for (String f : files) { checkCanceled(monitor); File file = new File(baseDir, f); if(scanner.isTemplate(file, config.getMasterLocale())) { subMon.subTask(f); acceptor.newMatch(file); subMon.worked(1); } } } if(monitor!=null) monitor.done(); }
WorkspaceScanner scanner = new WorkspaceScanner(); File baseDir = new File(absolutPath().path()).getAbsoluteFile(); SubMonitor subMonitor = SubMonitor.convert(monitor, "Scanning", 100); PropertyScanner propertyScanner = PropertyResourceUtil.createScanner(this); scanner.fullScan(new FullScanFileAcceptor(this, propertyScanner, configuration), baseDir, propertyScanner, configuration, subMonitor.newChild(50));
WorkspaceScanner scanner = new WorkspaceScanner(); File baseDir = new File(absolutPath().path()).getAbsoluteFile(); if (!scanner.partialScan(baseDir, propertyScanner, configuration, singleFile)) return; // no match -> no work switch (fileDiff.getKind()) { scanner.partialScan(new PartialScanFileAcceptor(this, propertyScanner, configuration), baseDir, propertyScanner, configuration,singleFile); break;
public ProjectLocale getOrCreateProjectLocale(Locale locale) { ProjectLocale projectLocale = getProjectVersion().getProjectLocale(locale); if (projectLocale == null) { projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale(locale); getProjectVersion().getChildren().add(projectLocale); } return projectLocale; }
public ProjectLocale getOrCreateProjectLocale(Locale locale) { ProjectLocale projectLocale = getProjectVersion().getProjectLocale(locale); if (projectLocale == null) { projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale(locale); getProjectVersion().getChildren().add(projectLocale); PropertyResourceUtil.addNewLocale(projectLocale, getProjectVersion()); } return projectLocale; }
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; }
private void newTemplateMatch(File file) { URI location = calculateLocation(file); if (getProjectVersion().getTemplate() == null) { getProjectVersion().setTemplate(PropertiesFactory.eINSTANCE.createProjectLocale()); getProjectVersion().getTemplate().setName("template"); getProjectVersion().getChildren().add(getProjectVersion().getTemplate()); PropertyFileDescriptor descriptor = (PropertyFileDescriptor) getProjectVersion().getTemplate().resolveChild(location); descriptor = createDescriptor(getProjectVersion().getTemplate(),location); getProjectVersion().getTemplate().getDescriptors().add(descriptor); descriptor.updatePercentComplete(); Locale locale = getPropertyScanner().getLocale(file); if (locale != null) { descriptor.setVariant(locale); Map<Locale, File> translations = getPropertyScanner().findTranslations(file, getScanConfig()); Set<Entry<Locale, File>> set = translations.entrySet(); for (Entry<Locale, File> entry : set) { ProjectLocale projectLocale = getOrCreateProjectLocale(entry.getKey()); URI childURI = calculateLocation(entry.getValue()); fileDescriptor = createDescriptor(projectLocale, childURI); PropertyResourceUtil.addNewTemplateDescriptor(descriptor,getProjectVersion());