blob: 66c3154212f2bf58f69ce4ed4a51416a7d420f75 [file] [log] [blame]
/*
* Copyright (c) 2013 VMware, Inc. All Rights Reserved.
*/
package com.vmware.gerrit.owners;
import com.vmware.gerrit.owners.common.PathOwners;
import com.google.gerrit.rules.PrologEnvironment;
import com.google.gerrit.rules.StoredValue;
import com.google.gerrit.rules.StoredValues;
import com.google.gerrit.server.account.AccountResolver;
import com.google.gerrit.server.patch.PatchList;
import com.google.gwtorm.server.OrmException;
import com.googlecode.prolog_cafe.lang.Prolog;
import com.googlecode.prolog_cafe.lang.SystemException;
import org.eclipse.jgit.lib.Repository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* StoredValues for the Gerrit OWNERS plugin.
*/
public class OwnersStoredValues {
private static final Logger log = LoggerFactory.getLogger(OwnersStoredValues.class);
public static StoredValue<PathOwners> PATH_OWNERS;
synchronized
public static void initialize(final AccountResolver resolver) {
if (PATH_OWNERS != null) {
return;
}
log.error("Initializing OwnerStoredValues");
PATH_OWNERS = new StoredValue<PathOwners>() {
@Override
protected PathOwners createValue(Prolog engine) {
PatchList patchList = StoredValues.PATCH_LIST.get(engine);
Repository repository = StoredValues.REPOSITORY.get(engine);
PrologEnvironment env = (PrologEnvironment) engine.control;
try {
return new PathOwners(resolver, repository, patchList);
} catch (OrmException e) {
throw new SystemException(e.getMessage());
}
}
};
}
private OwnersStoredValues() {
}
}