class SpacewalkPackage extends RPMRepoPackage {

    public static SpacewalkPackage buildSpacewalkPackage(final Map<String, Object> packageMap,
                    final Repository sourceRepository) throws IllegalArgumentException {

        if (null == packageMap) {
            throw new NullPointerException("packageMap is null");
        }
        if (null == sourceRepository) {
            throw new NullPointerException("sourceRepository is null");
        }
        String name = tryGet(packageMap, "name").toString();
        String version = tryGet(packageMap, "version").toString();
        String release = tryGet(packageMap, "release").toString();
        String architecture = tryGet(packageMap, "arch_label").toString();
        int spacewalkPackageId = (int) tryGet(packageMap, "id");

        return new SpacewalkPackage(name, version, release, architecture, sourceRepository,
                        spacewalkPackageId);
    }

    protected  SpacewalkPackage();
    public  SpacewalkPackage(final String name, final String version, final String release,
                    final String architecture, final Repository sourceRepository,
                    final int spacewalkPackageId);

}