org.boon.datarepo.RepoBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of boon Show documentation
Show all versions of boon Show documentation
Simple opinionated Java for the novice to expert level Java Programmer.
Low Ceremony. High Productivity. A real boon to Java to developers!
/*
* Copyright 2013-2014 Richard M. Hightower
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* __________ _____ __ .__
* \______ \ ____ ____ ____ /\ / \ _____ | | _|__| ____ ____
* | | _// _ \ / _ \ / \ \/ / \ / \\__ \ | |/ / |/ \ / ___\
* | | ( <_> | <_> ) | \ /\ / Y \/ __ \| <| | | \/ /_/ >
* |______ /\____/ \____/|___| / \/ \____|__ (____ /__|_ \__|___| /\___ /
* \/ \/ \/ \/ \/ \//_____/
* ____. ___________ _____ ______________.___.
* | |____ ___ _______ \_ _____/ / _ \ / _____/\__ | |
* | \__ \\ \/ /\__ \ | __)_ / /_\ \ \_____ \ / | |
* /\__| |/ __ \\ / / __ \_ | \/ | \/ \ \____ |
* \________(____ /\_/ (____ / /_______ /\____|__ /_______ / / ______|
* \/ \/ \/ \/ \/ \/
*/
package org.boon.datarepo;
import org.boon.datarepo.modification.ModificationListener;
import org.boon.datarepo.spi.RepoComposer;
import org.boon.datarepo.spi.SearchIndex;
import org.boon.core.Function;
import org.boon.core.Supplier;
import java.util.Comparator;
import java.util.Locale;
import java.util.logging.Level;
/**
* Provides a builder for Repos.
*/
public interface RepoBuilder {
public RepoBuilder searchIndexFactory( Function factory );
public RepoBuilder lookupIndexFactory( Function factory );
public RepoBuilder uniqueLookupIndexFactory( Function factory );
public RepoBuilder uniqueSearchIndexFactory( Function factory );
public RepoBuilder repoFactory( Supplier factory );
public RepoBuilder primaryKey( String propertyName );
public RepoBuilder lookupIndex( String propertyName );
public RepoBuilder uniqueLookupIndex( String propertyName );
public RepoBuilder searchIndex( String propertyName );
public RepoBuilder uniqueSearchIndex( String propertyName );
public RepoBuilder collateIndex( String propertyName, Comparator collator );
public RepoBuilder collateIndex( String propertyName );
public RepoBuilder collateIndex( String propertyName, Locale locale );
public RepoBuilder keyGetter( String propertyName, Function, ?> key );
public RepoBuilder filterFactory( Supplier factory );
public RepoBuilder usePropertyForAccess( boolean useProperty );
public RepoBuilder useFieldForAccess( boolean useField );
public RepoBuilder useUnsafe( boolean useUnSafe );
public RepoBuilder nullChecks( boolean nullChecks );
public RepoBuilder addLogging( boolean logging );
public RepoBuilder cloneEdits( boolean cloneEdits );
public RepoBuilder useCache();
public RepoBuilder storeKeyInIndexOnly();
RepoBuilder events( ModificationListener... listeners );
RepoBuilder debug();
Repo build( Class key, Class- clazz, Class>... all );
RepoBuilder level( Level info );
RepoBuilder upperCaseIndex( String property );
RepoBuilder lowerCaseIndex( String property );
RepoBuilder camelCaseIndex( String property );
RepoBuilder underBarCaseIndex( String property );
@Deprecated
RepoBuilder nestedIndex( String... propertyPath );
RepoBuilder indexHierarchy();
RepoBuilder indexBucketSize( String propertyName, int size );
RepoBuilder hashCodeOptimizationOn();
RepoBuilder removeDuplication( boolean removeDuplication );
}