当前位置: 首页>>代码示例>>Java>>正文


Java Scope类代码示例

本文整理汇总了Java中com.buschmais.jqassistant.core.scanner.api.Scope的典型用法代码示例。如果您正苦于以下问题:Java Scope类的具体用法?Java Scope怎么用?Java Scope使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Scope类属于com.buschmais.jqassistant.core.scanner.api包,在下文中一共展示了Scope类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public ManifestFileDescriptor scan(FileResource item, String path, Scope scope, Scanner scanner) throws IOException {
    try (InputStream stream = item.createStream()) {
        Manifest manifest = new Manifest(stream);
        ScannerContext context = scanner.getContext();
        Store store = context.getStore();
        FileDescriptor fileDescriptor = context.getCurrentDescriptor();
        ManifestFileDescriptor manifestFileDescriptor = store.addDescriptorType(fileDescriptor, ManifestFileDescriptor.class);
        ManifestSectionDescriptor mainSectionDescriptor = store.create(ManifestSectionDescriptor.class);
        mainSectionDescriptor.setName(SECTION_MAIN);
        manifestFileDescriptor.setMainSection(mainSectionDescriptor);
        readSection(manifest.getMainAttributes(), mainSectionDescriptor, store);
        for (Map.Entry<String, Attributes> sectionEntry : manifest.getEntries().entrySet()) {
            ManifestSectionDescriptor sectionDescriptor = store.create(ManifestSectionDescriptor.class);
            sectionDescriptor.setName(sectionEntry.getKey());
            readSection(sectionEntry.getValue(), sectionDescriptor, store);
            manifestFileDescriptor.getManifestSections().add(sectionDescriptor);
        }
        return manifestFileDescriptor;
    }
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:22,代码来源:ManifestFileScannerPlugin.java

示例2: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public ClassFileDescriptor scan(FileResource file, String path, Scope scope, final Scanner scanner) throws IOException {
    final FileDescriptor fileDescriptor = scanner.getContext().getCurrentDescriptor();
    VisitorHelper visitorHelper = new VisitorHelper(scanner.getContext(), classModelConfiguration);
    final ClassVisitor visitor = new ClassVisitor(fileDescriptor, visitorHelper);
    ClassFileDescriptor classFileDescriptor;
    try (InputStream stream = file.createStream()) {
        classFileDescriptor = MD5DigestDelegate.getInstance().digest(stream, new MD5DigestDelegate.DigestOperation<ClassFileDescriptor>() {
            @Override
            public ClassFileDescriptor execute(InputStream inputStream) throws IOException {
                new ClassReader(inputStream).accept(visitor, 0);
                return visitor.getTypeDescriptor();
            }
        });
        classFileDescriptor.setValid(true);
    } catch (RuntimeException e) {
        LOGGER.warn("Cannot scan class '" + path + "'.", e);
        classFileDescriptor = visitor.getTypeDescriptor();
        if (classFileDescriptor == null) {
            classFileDescriptor = scanner.getContext().getStore().addDescriptorType(fileDescriptor, ClassFileDescriptor.class);
        }
        classFileDescriptor.setValid(false);
    }
    return classFileDescriptor;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:26,代码来源:ClassFileScannerPlugin.java

示例3: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public PropertyFileDescriptor scan(FileResource item, String path, Scope scope, Scanner scanner) throws IOException {
    ScannerContext context = scanner.getContext();
    Store store = context.getStore();
    FileDescriptor fileDescriptor = context.getCurrentDescriptor();
    PropertyFileDescriptor propertyFileDescriptor = store.addDescriptorType(fileDescriptor, PropertyFileDescriptor.class);
    Properties properties = new Properties();
    try (InputStream stream = item.createStream()) {
        properties.load(stream);
    } catch (IllegalArgumentException e) {
        LOGGER.warn("Cannot load properties from '" + path + "': " + e.getMessage());
    }
    for (String name : properties.stringPropertyNames()) {
        String value = properties.getProperty(name);
        PropertyDescriptor propertyDescriptor = store.create(PropertyDescriptor.class);
        propertyDescriptor.setName(name);
        propertyDescriptor.setValue(value);
        propertyFileDescriptor.getProperties().add(propertyDescriptor);
    }
    return propertyFileDescriptor;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:22,代码来源:PropertyFileScannerPlugin.java

示例4: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public ServiceLoaderDescriptor scan(FileResource item, String path, Scope scope, Scanner scanner) throws IOException {
    Matcher matcher = PATTERN.matcher(path);
    if (!matcher.matches()) {
        throw new IOException("Cannot match path name: " + path);
    }
    String serviceInterface = matcher.group(2);
    ScannerContext context = scanner.getContext();
    FileDescriptor fileDescriptor = context.getCurrentDescriptor();
    ServiceLoaderDescriptor serviceLoaderDescriptor = context.getStore().addDescriptorType(fileDescriptor, ServiceLoaderDescriptor.class);
    TypeDescriptor interfaceTypeDescriptor = getTypeDescriptor(serviceInterface, context);
    serviceLoaderDescriptor.setType(interfaceTypeDescriptor);

    try (InputStream stream = item.createStream()) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
        String serviceImplementation;
        while ((serviceImplementation = reader.readLine()) != null) {
            if (!isEmptyOrComment(serviceImplementation)) {
                TypeDescriptor implementationTypeDescriptor = getTypeDescriptor(serviceImplementation, context);
                serviceLoaderDescriptor.getContains().add(implementationTypeDescriptor);
            }
        }
    }
    return serviceLoaderDescriptor;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:26,代码来源:ServiceLoaderFileScannerPlugin.java

示例5: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public PackageDescriptor scan(DirectoryResource item, String path, Scope scope, Scanner scanner) throws IOException {
    ScannerContext context = scanner.getContext();
    DirectoryDescriptor directoryDescriptor = context.getCurrentDescriptor();
    PackageDescriptor descriptor = context.getStore().addDescriptorType(directoryDescriptor, PackageDescriptor.class);
    String packageName = path.substring(1).replaceAll("/", ".");
    String name;
    int separatorIndex = packageName.lastIndexOf('.');
    if (separatorIndex != -1) {
        name = packageName.substring(separatorIndex + 1);
    } else {
        name = packageName;
    }
    descriptor.setName(name);
    descriptor.setFullQualifiedName(packageName);
    return descriptor;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:18,代码来源:PackageDirectoryScannerPlugin.java

示例6: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public PropertyFileDescriptor scan(FileResource item, String path, Scope scope, Scanner scanner) throws IOException {
    ScannerContext context = scanner.getContext();
    Store store = context.getStore();
    FileDescriptor fileDescriptor = context.getCurrentDescriptor();
    Class<XmlPropertyFileDescriptor> descriptorType = XmlPropertyFileDescriptor.class;
    PropertyFileDescriptor propertyFileDescriptor = store.addDescriptorType(fileDescriptor, descriptorType);
    Properties properties = new Properties();
    try (InputStream stream = item.createStream()) {
        properties.loadFromXML(stream);
    } catch (IllegalArgumentException e) {
        LOGGER.warn("Cannot load properties from '" + path + "': " + e.getMessage());
    }

    for (String name : properties.stringPropertyNames()) {
        String value = properties.getProperty(name);
        PropertyDescriptor propertyDescriptor = store.create(PropertyDescriptor.class);
        propertyDescriptor.setName(name);
        propertyDescriptor.setValue(value);
        propertyFileDescriptor.getProperties().add(propertyDescriptor);
    }
    return propertyFileDescriptor;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:24,代码来源:XmlPropertyFileScannerPlugin.java

示例7: getScopes

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
private Map<String, Scope> getScopes(List<JqassistantPlugin> plugins) throws PluginRepositoryException {
    Map<String, Scope> scopes = new HashMap<>();
    for (JqassistantPlugin plugin : plugins) {
        ScopeType scopeType = plugin.getScope();
        if (scopeType != null) {
            for (String scopePluginName : scopeType.getClazz()) {
                Class<? extends Enum<?>> type = getType(scopePluginName);
                for (Enum enumConstant : type.getEnumConstants()) {
                    Scope scope = (Scope) enumConstant;
                    String scopeName = scope.getPrefix() + ":" + scope.getName();
                    scopes.put(scopeName.toLowerCase(), scope);
                }
            }
        }
    }
    return scopes;
}
 
开发者ID:buschmais,项目名称:jqa-core-framework,代码行数:18,代码来源:ScopePluginRepositoryImpl.java

示例8: accepts

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public boolean accepts(final FileResource item, final String path, final Scope scope) throws IOException {
    int beginIndex = path.lastIndexOf(".");
    if(beginIndex > 0) {
        final String suffix = path.substring(beginIndex + 1).toLowerCase();

        boolean accepted = suffixes.contains(suffix);
        if(accepted) {
            LOGGER.info("Plaintext accepted path "+path);
        }

        return accepted;
    }

    return false;
}
 
开发者ID:kontext-e,项目名称:jqassistant-plugins,代码行数:17,代码来源:PlaintextFileScannerPlugin.java

示例9: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public PlaintextFileDescriptor scan(final FileResource item, final String path, final Scope scope, final Scanner scanner) throws IOException {
    final Store store = scanner.getContext().getStore();
    final PlaintextFileDescriptor plaintextFileDescriptor = store.create(PlaintextFileDescriptor.class);
    plaintextFileDescriptor.setFileName(path);

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(item.createStream()))) {
        final PlaintextLineParser pumlLineParser = new PlaintextLineParser(store, plaintextFileDescriptor);
        String line;
        while ((line = reader.readLine()) != null) {
            pumlLineParser.parseLine(line);
        }
    }

    return plaintextFileDescriptor;
}
 
开发者ID:kontext-e,项目名称:jqassistant-plugins,代码行数:17,代码来源:PlaintextFileScannerPlugin.java

示例10: accepts

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public boolean accepts(final FileResource item, final String path, final Scope scope) throws IOException {
    int beginIndex = path.lastIndexOf(".");
    if(beginIndex > 0) {
        final String suffix = path.substring(beginIndex + 1).toLowerCase();

        boolean accepted = suffixes.contains(suffix);
        if(accepted) {
            LOGGER.info("PlantUML accepted path "+path);
        }

        return accepted;
    }

    return false;
}
 
开发者ID:kontext-e,项目名称:jqassistant-plugins,代码行数:17,代码来源:PlantUmlFileScannerPlugin.java

示例11: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public PlantUmlFileDescriptor scan(final FileResource item, final String path, final Scope scope, final Scanner scanner) throws IOException {
    final Store store = scanner.getContext().getStore();
    final PlantUmlFileDescriptor plantUmlFileDescriptor = store.create(PlantUmlFileDescriptor.class);
    plantUmlFileDescriptor.setFileName(path);

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(item.createStream()))) {
        final PumlLineParser pumlLineParser = new PumlLineParser(store, plantUmlFileDescriptor, path.endsWith(".puml") ? ParsingState.ACCEPTING : ParsingState.IGNORING);
        String line;
        while ((line = reader.readLine()) != null) {
            pumlLineParser.parseLine(line);
        }
    }

    return plantUmlFileDescriptor;
}
 
开发者ID:kontext-e,项目名称:jqassistant-plugins,代码行数:17,代码来源:PlantUmlFileScannerPlugin.java

示例12: accepts

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public boolean accepts(final FileResource item, final String path, final Scope scope) throws IOException {
    int beginIndex = path.lastIndexOf(".");
    if(beginIndex > 0) {
        final String suffix = path.substring(beginIndex + 1).toLowerCase();

        boolean accepted = suffixes.contains(suffix);
        if(accepted) {
            LOGGER.info("Asciidoc accepted path "+path);
        }

        return accepted;
    }

    return false;
}
 
开发者ID:kontext-e,项目名称:jqassistant-plugins,代码行数:17,代码来源:AsciidocFileScannerPlugin.java

示例13: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public CustomDescriptor scan(FileResource item, String path, Scope scope, Scanner scanner) throws IOException {
    ClassFileDescriptor descriptor = scanner.getContext().peek(ClassFileDescriptor.class);
    String value = (String) getProperties().get(PROPERTY_VALUE);
    LOGGER.info("Using custom plugin to scan " + path + ", setting value to " + value);
    CustomDescriptor customDescriptor = scanner.getContext().getStore().migrate(descriptor, CustomDescriptor.class);
    customDescriptor.setValue(value);
    return customDescriptor;
}
 
开发者ID:buschmais,项目名称:jqa-maven-plugin,代码行数:10,代码来源:CustomScannerPlugin.java

示例14: scan

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public ClassFileDescriptor scan(final Class<?> item, String path, Scope scope, Scanner scanner) throws IOException {
    final String fileName = "/" + item.getName().replace('.', '/') + ".class";
    AbstractFileResource fileResource = new AbstractFileResource() {
        @Override
        public InputStream createStream() throws IOException {
            return item.getResourceAsStream(fileName);
        }
    };
    return scanner.scan(fileResource, fileName, scope);
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:12,代码来源:ClassTypeScannerPlugin.java

示例15: accepts

import com.buschmais.jqassistant.core.scanner.api.Scope; //导入依赖的package包/类
@Override
public boolean accepts(FileResource file, String path, Scope scope) throws IOException {
    if (CLASSPATH.equals(scope) && path.endsWith(".class")) {
        try (InputStream stream = file.createStream()) {
            byte[] header = new byte[CAFEBABE.length];
            int read = stream.read(header);
            return read == CAFEBABE.length && Arrays.equals(CAFEBABE, header);
        }
    }
    return false;
}
 
开发者ID:buschmais,项目名称:jqa-java-plugin,代码行数:12,代码来源:ClassFileScannerPlugin.java


注:本文中的com.buschmais.jqassistant.core.scanner.api.Scope类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。