public class IndexCreationEvent extends RepositoryEvent<URI> {
public enum Index implements EventType {
- URI_CHANGE
+ INDEX_URI_CHANGE, PACKED_INDEX_URI_CHANGE
}
IndexCreationEvent(Repository repo, URI oldValue, URI value) {
- super(Index.URI_CHANGE, repo, oldValue, value);
+ super(Index.INDEX_URI_CHANGE, repo, oldValue, value);
+ }
+
+ IndexCreationEvent(Index type, Repository repo, URI oldValue, URI value) {
+ super(type, repo, oldValue, value);
+ }
+
+ public static final IndexCreationEvent indexUriChange(Repository repo, URI oldValue, URI newValue) {
+ return new IndexCreationEvent(Index.INDEX_URI_CHANGE, repo, oldValue, newValue);
+ }
+
+ public static final IndexCreationEvent packedIndexUriChange(Repository repo, URI oldValue, URI newValue) {
+ return new IndexCreationEvent(Index.PACKED_INDEX_URI_CHANGE, repo, oldValue, newValue);
}
}
*/
public class IndexCreationFeature extends AbstractFeature implements RepositoryFeature<IndexCreationFeature>{
+ public static final String DEFAULT_INDEX_PATH = ".indexer";
+ public static final String DEFAULT_PACKED_INDEX_PATH = ".index";
private boolean skipPackedIndexCreation = false;
private URI indexPath;
+ private URI packedIndexPath;
+
private Path localIndexPath;
+ private Path localPackedIndexPath;
+
private Repository repo;
public IndexCreationFeature(Repository repoId, RepositoryEventListener listener) {
super(listener);
this.repo = repoId;
- try
- {
- setIndexPath(new URI(".indexer"));
- }
- catch ( URISyntaxException e )
- {
- // This may not happen.
- e.printStackTrace( );
+ try {
+ this.indexPath = new URI(DEFAULT_INDEX_PATH);
+ this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
+ } catch (URISyntaxException e) {
+ // Does not happen
+ e.printStackTrace();
}
}
public IndexCreationFeature(boolean skipPackedIndexCreation) {
this.skipPackedIndexCreation = skipPackedIndexCreation;
+ try {
+ this.indexPath = new URI(DEFAULT_INDEX_PATH);
+ this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
+ } catch (URISyntaxException e) {
+ // Does not happen
+ e.printStackTrace();
+ }
}
@Override
{
URI oldVal = this.indexPath;
this.indexPath = indexPath;
- raiseEvent(new IndexCreationEvent(repo, oldVal, this.indexPath));
+ raiseEvent(IndexCreationEvent.indexUriChange(repo, oldVal, this.indexPath));
}
return this.indexPath!=null && !StringUtils.isEmpty( this.indexPath.getPath() );
}
+ /**
+ * Returns the path where the index is stored physically.
+ *
+ * @return
+ */
public Path getLocalIndexPath() {
return localIndexPath;
}
+ /**
+ * Sets the path where the index is stored physically. This method should only be used by the
+ * MavenIndexProvider implementations.
+ *
+ * @param localIndexPath
+ */
public void setLocalIndexPath(Path localIndexPath) {
this.localIndexPath = localIndexPath;
}
+
+
+ /**
+ * Returns the path of the packed index.
+ * @return
+ */
+ public URI getPackedIndexPath() {
+ return packedIndexPath;
+ }
+
+ /**
+ * Sets the path (relative or absolute) of the packed index.
+ * @param packedIndexPath
+ */
+ public void setPackedIndexPath(URI packedIndexPath) {
+ URI oldVal = this.packedIndexPath;
+ this.packedIndexPath = packedIndexPath;
+ raiseEvent(IndexCreationEvent.packedIndexUriChange(repo, oldVal, this.packedIndexPath));
+ }
+
+ /**
+ * Returns the directory where the packed index is stored.
+ * @return
+ */
+ public Path getLocalPackedIndexPath() {
+ return localPackedIndexPath;
+ }
+
+ /**
+ * Sets the path where the packed index is stored physically. This method should only be used by the
+ * MavenIndexProvider implementations.
+ *
+ * @param localPackedIndexPath
+ */
+ public void setLocalPackedIndexPath(Path localPackedIndexPath) {
+ this.localPackedIndexPath = localPackedIndexPath;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("IndexCreationFeature:{").append("skipPackedIndexCreation=").append(skipPackedIndexCreation)
+ .append(",indexPath=").append(indexPath).append(",packedIndexPath=").append(packedIndexPath).append("}");
+ return sb.toString();
+ }
}