public boolean updateArtifactInfo()

in indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java [349:464]


    public boolean updateArtifactInfo(Document doc, ArtifactInfo ai) {
        boolean res = false;

        String uinfo = doc.get(ArtifactInfo.UINFO);

        if (uinfo != null) {

            int start = 0;
            int end = uinfo.indexOf(FS);
            ai.setGroupId(uinfo.substring(start, end));

            start = end + 1;
            end = uinfo.indexOf(FS, start);
            ai.setArtifactId(uinfo.substring(start, end));

            start = end + 1;
            end = uinfo.indexOf(FS, start);
            ai.setVersion(uinfo.substring(start, end));

            start = end + 1;
            end = uinfo.indexOf(FS, start);
            if (end == -1) {
                end = uinfo.length();
            }
            ai.setClassifier(ArtifactInfo.renvl(uinfo.substring(start, end)));

            if (end != uinfo.length()) {
                start = end + 1;
                end = uinfo.length();
                ai.setFileExtension(uinfo.substring(start, end));
            }

            res = true;
        }

        String info = doc.get(ArtifactInfo.INFO);

        if (info != null) {

            int start = 0;
            int end = info.indexOf(FS);
            ai.setPackaging(ArtifactInfo.renvl(info.substring(start, end)));

            start = end + 1;
            end = info.indexOf(FS, start);
            ai.setLastModified(Long.parseLong(info.substring(start, end)));

            start = end + 1;
            end = info.indexOf(FS, start);
            ai.setSize(Long.parseLong(info.substring(start, end)));

            start = end + 1;
            end = info.indexOf(FS, start);
            ai.setSourcesExists(ArtifactAvailability.fromString(info.substring(start, end)));

            start = end + 1;
            end = info.indexOf(FS, start);
            ai.setJavadocExists(ArtifactAvailability.fromString(info.substring(start, end)));

            start = end + 1;
            end = info.indexOf(FS, start);
            if (end == -1) {
                end = info.length();
            }
            ai.setSignatureExists(ArtifactAvailability.fromString(info.substring(start, end)));

            if (end != info.length()) {
                start = end + 1;
                end = info.length();
                ai.setFileExtension(info.substring(start, end));
            } else {
                if (ai.getClassifier() != null //
                        || "pom".equals(ai.getPackaging()) //
                        || "war".equals(ai.getPackaging()) //
                        || "ear".equals(ai.getPackaging())) {
                    ai.setFileExtension(ai.getPackaging());
                } else {
                    ai.setFileExtension("jar"); // best guess
                }
            }

            res = true;
        }

        String name = doc.get(ArtifactInfo.NAME);

        if (name != null) {
            ai.setName(name);

            res = true;
        }

        String description = doc.get(ArtifactInfo.DESCRIPTION);

        if (description != null) {
            ai.setDescription(description);

            res = true;
        }

        // sometimes there's a pom without packaging(default to jar), but no artifact, then the value will be a "null"
        // String
        if ("null".equals(ai.getPackaging())) {
            ai.setPackaging(null);
        }

        String sha1 = doc.get(ArtifactInfo.SHA1);

        if (sha1 != null) {
            ai.setSha1(sha1);
        }

        return res;

        // artifactInfo.fname = ???
    }