blob: 6e6209b23d7b348c010ba57dd5a714e5abc3ecc0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010-2014 SAP AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.skalli.model.ext.maven.internal;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.lang.StringUtils;
import org.eclipse.skalli.model.ext.maven.MavenCoordinate;
import org.eclipse.skalli.model.ext.maven.MavenModule;
import org.eclipse.skalli.model.ext.maven.MavenReactor;
import org.eclipse.skalli.model.ext.maven.MavenReactorProjectExt;
import org.eclipse.skalli.services.extension.IndexerBase;
public class MavenReactorIndexer extends IndexerBase<MavenReactorProjectExt> {
private static final String MAVEN_PREFIX = "maven.";
private static final String MAVEN_MODULE_PREFIX = "maven.module.";
private static final String MAVEN_GROUPID = "groupId";
private static final String MAVEN_ARTIFACTID = "artifactId";
private static final String MAVEN_PACKAGING = "packaging";
private final boolean doStore = false;
private final boolean doIndexed = true;
@Override
public Set<String> getDefaultSearchFields() {
Set<String> ret = new HashSet<String>();
ret.add(MAVEN_PREFIX + MAVEN_GROUPID);
ret.add(MAVEN_PREFIX + MAVEN_ARTIFACTID);
ret.add(MAVEN_PREFIX + MAVEN_PACKAGING);
ret.add(MAVEN_MODULE_PREFIX + MAVEN_GROUPID);
ret.add(MAVEN_MODULE_PREFIX + MAVEN_ARTIFACTID);
ret.add(MAVEN_MODULE_PREFIX + MAVEN_PACKAGING);
return ret;
}
/* (non-Javadoc)
* @see org.eclipse.skalli.model.ext.AbstractIndexer#indexFields(org.eclipse.skalli.model.ext.EntityBase)
*/
@Override
protected void indexFields(MavenReactorProjectExt mavenReactorProjectExt) {
indexMavenReactor(mavenReactorProjectExt.getMavenReactor());
}
/**
* @param mavenReactor
*/
private void indexMavenReactor(MavenReactor mavenReactor) {
if (mavenReactor != null) {
indexCoordinates(mavenReactor.getCoordinate(), MAVEN_PREFIX);
indexModuleCoodinates(mavenReactor.getModules());
}
}
private void indexModuleCoodinates(TreeSet<MavenModule> mavenCoordinates) {
if (mavenCoordinates == null) {
return;
}
for (MavenCoordinate mavenCoordinate : mavenCoordinates) {
indexCoordinates(mavenCoordinate, MAVEN_MODULE_PREFIX);
}
}
private void indexCoordinates(MavenCoordinate coordinate, String filedNamePrefix) {
if (coordinate == null) {
return;
}
if (StringUtils.isNotBlank(coordinate.getGroupId())) {
addField(filedNamePrefix + MAVEN_GROUPID, coordinate.getGroupId(), doStore, doIndexed);
}
if (StringUtils.isNotBlank(coordinate.getArtefactId())) {
addField(filedNamePrefix + MAVEN_ARTIFACTID, coordinate.getArtefactId(), doStore, doIndexed);
}
if (StringUtils.isNotBlank(coordinate.getPackaging())) {
addField(filedNamePrefix + MAVEN_PACKAGING, coordinate.getPackaging(), doStore, doIndexed);
}
}
}