Package org.bndtools.builder.validate

Source Code of org.bndtools.builder.validate.BsnValidator

package org.bndtools.builder.validate;

import org.bndtools.api.IValidator;
import org.bndtools.builder.NewBuilder;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;

import aQute.bnd.osgi.Builder;

public class BsnValidator implements IValidator {

    public IStatus validate(Builder builder) {
        IStatus status = Status.OK_STATUS;

        // Get actual BSN
        String actual = builder.getBsn();

        // Get expected BSN from file name
        String expected = null;
        if (builder.getPropertiesFile() != null)
            expected = builder.getPropertiesFile().getName();
        String projectName = builder.getBase().getName();
        if (expected == null || expected.equals("bnd.bnd")) {
            expected = projectName;
        } else if (expected.endsWith(".bnd")) {
            expected = expected.substring(0, expected.length() - ".bnd".length());
            if (!expected.startsWith(builder.getBase().getName()))
                expected = projectName + "." + expected;
        }

        // Report error if not matching
        if (!actual.equals(expected))
            status = new Status(IStatus.ERROR, NewBuilder.PLUGIN_ID, 0, String.format("Bundle-SymbolicName '%s' is not valid for builder: %s", actual, (builder.getPropertiesFile() == null ? builder.getBase().getName() : builder
                    .getPropertiesFile().getName())), null);

        return status;
    }

}
TOP

Related Classes of org.bndtools.builder.validate.BsnValidator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.