Search in sources :

Example 1 with LocationFilter

use of sharpen.xobotos.config.LocationFilter in project XobotOS by xamarin.

the class AbstractLocationTemplate method print.

@Override
protected void print(StringBuilder sb) {
    if (_locationFilters != null) {
        for (final LocationFilter filter : _locationFilters) {
            sb.append(':');
            sb.append(filter);
        }
    }
    super.print(sb);
}
Also used : LocationFilter(sharpen.xobotos.config.LocationFilter)

Example 2 with LocationFilter

use of sharpen.xobotos.config.LocationFilter in project XobotOS by xamarin.

the class XobotBuilder method checkFileList.

private void checkFileList() {
    final IPath sourcePath = _sourceFolder.getLocation();
    final IPath outputPath = _outputFolder.getLocation();
    final URI outputURI = outputPath.toFile().toURI();
    final SourceInfo sourceInfo = _configFile.getSourceInfo();
    final List<LocationFilter> excludeFilters = sourceInfo.getLocationFilters();
    ArrayList<String> extraCSharpSources = new ArrayList<String>();
    for (final String dir : sourceInfo.getExtraCSharpSources()) {
        File path = _project.getLocation().append(dir).toFile();
        collectAllFiles(extraCSharpSources, path.toURI(), path, ".cs");
    }
    for (final Entry<ICompilationUnit, Boolean> entry : _sources.entrySet()) {
        final ICompilationUnit unit = entry.getKey();
        String unitName = getUnitName(unit);
        String sourceName = unitName.replace('.', '/') + ".java";
        File sourceFile = sourcePath.append(sourceName).toFile();
        String outputName = unitName.replace('.', '/') + ".cs";
        File outputFile = outputPath.append(outputName).toFile();
        URI uri = outputURI.relativize(outputFile.toURI());
        if (_api.compilationUnitDefinesBindings(unitName)) {
            /*
				 * This CompilationUnit defines bindings. We
				 * must always parse it, but don't need to
				 * regenerate it if the output is up-to-date.
				 */
            _mustParse.put(unit, true);
        }
        if (extraCSharpSources.contains(uri.getPath())) {
            entry.setValue(false);
            continue;
        }
        if (outputFile.exists() && (outputFile.lastModified() >= sourceFile.lastModified())) {
            entry.setValue(false);
            continue;
        }
        /*
			 * Check location filters.
			 */
        Match match = Match.NO_MATCH;
        for (final LocationFilter filter : excludeFilters) {
            match = filter.matches(unitName);
            if (match != Match.NO_MATCH)
                break;
        }
        if (match != Match.NO_MATCH) {
            entry.setValue(match == Match.POSITIVE);
            continue;
        }
        /*
			 * Default to building.
			 */
        entry.setValue(true);
    }
}
Also used : ICompilationUnit(org.eclipse.jdt.core.ICompilationUnit) IPath(org.eclipse.core.runtime.IPath) SourceInfo(sharpen.xobotos.config.SourceInfo) URI(java.net.URI) Match(sharpen.xobotos.config.LocationFilter.Match) LocationFilter(sharpen.xobotos.config.LocationFilter) ConfigFile(sharpen.xobotos.config.ConfigFile) CSProjectFile(sharpen.xobotos.config.CSProjectFile)

Aggregations

LocationFilter (sharpen.xobotos.config.LocationFilter)2 URI (java.net.URI)1 IPath (org.eclipse.core.runtime.IPath)1 ICompilationUnit (org.eclipse.jdt.core.ICompilationUnit)1 CSProjectFile (sharpen.xobotos.config.CSProjectFile)1 ConfigFile (sharpen.xobotos.config.ConfigFile)1 Match (sharpen.xobotos.config.LocationFilter.Match)1 SourceInfo (sharpen.xobotos.config.SourceInfo)1