http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/BinarySpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/BinarySpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/BinarySpecification.java deleted file mode 100644 index 07c5d99..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/BinarySpecification.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Specification; - -/** - * Base binary Specification, used for AND and OR Specifications.. - */ -public abstract class BinarySpecification - extends ExpressionSpecification -{ - protected final Iterable<Specification<Composite>> operands; - - protected BinarySpecification( Iterable<Specification<Composite>> operands ) - { - this.operands = operands; - } - - public Iterable<Specification<Composite>> operands() - { - return operands; - } -}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ComparisonSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ComparisonSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ComparisonSpecification.java deleted file mode 100644 index f855054..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ComparisonSpecification.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.property.Property; - -/** - * Base comparison Specification. - */ -public abstract class ComparisonSpecification<T> - extends ExpressionSpecification -{ - protected final PropertyFunction<T> property; - protected final T value; - - public ComparisonSpecification( PropertyFunction<T> property, T value ) - { - this.property = property; - this.value = value; - } - - public PropertyFunction<T> property() - { - return property; - } - - @Override - public final boolean satisfiedBy( Composite item ) - { - try - { - Property<T> prop = property.map( item ); - - if( prop == null ) - { - return false; - } - - T propValue = prop.get(); - if( propValue == null ) - { - return false; - } - - return compare( propValue ); - } - catch( IllegalArgumentException e ) - { - return false; - } - } - - protected abstract boolean compare( T value ); - - public T value() - { - return value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsAllSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsAllSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsAllSpecification.java deleted file mode 100644 index 7ff3e1b..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsAllSpecification.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import java.util.Collection; -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Iterables; - -/** - * Contains All Specification. - */ -public class ContainsAllSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<? extends Collection<T>> collectionProperty; - private Iterable<T> valueCollection; - - public ContainsAllSpecification( PropertyFunction<? extends Collection<T>> collectionProperty, - Iterable<T> valueCollection - ) - { - this.collectionProperty = collectionProperty; - this.valueCollection = valueCollection; - } - - public PropertyFunction<? extends Collection<T>> collectionProperty() - { - return collectionProperty; - } - - public Iterable<T> containedValues() - { - return valueCollection; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Collection<T> collection = collectionProperty.map( item ).get(); - - if( collection == null ) - { - return false; - } - - for( T value : valueCollection ) - { - if( !collection.contains( value ) ) - { - return false; - } - } - - return true; - } - - @Override - public String toString() - { - return collectionProperty + " contains " + Iterables.toList( valueCollection ); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsSpecification.java deleted file mode 100644 index ea049de..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ContainsSpecification.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import java.util.Collection; -import org.qi4j.api.composite.Composite; - -/** - * Contains Specification. - */ -public class ContainsSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<? extends Collection<T>> collectionProperty; - private T value; - - public ContainsSpecification( PropertyFunction<? extends Collection<T>> collectionProperty, T value ) - { - this.collectionProperty = collectionProperty; - this.value = value; - } - - public PropertyFunction<? extends Collection<T>> collectionProperty() - { - return collectionProperty; - } - - public T value() - { - return value; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Collection<T> collection = collectionProperty.map( item ).get(); - - if( collection == null ) - { - return false; - } - - return collection.contains( value ); - } - - @Override - public String toString() - { - return collectionProperty + " contains " + value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/EqSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/EqSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/EqSpecification.java deleted file mode 100644 index b4c1d90..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/EqSpecification.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Equals Specification. - */ -public class EqSpecification<T> - extends ComparisonSpecification<T> -{ - public EqSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - protected boolean compare( T value ) - { - return value.equals( this.value ); - } - - @Override - public String toString() - { - return property.toString() + "=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ExpressionSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ExpressionSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ExpressionSpecification.java deleted file mode 100644 index 9886ca9..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ExpressionSpecification.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Specification; - -import static org.qi4j.functional.Iterables.append; -import static org.qi4j.functional.Iterables.iterable; - -/** - * Base expression Specification. - */ -public abstract class ExpressionSpecification - implements Specification<Composite> -{ - - @SuppressWarnings( "unchecked" ) - public AndSpecification and( Specification<Composite> specification ) - { - if( this instanceof AndSpecification ) - { - return new AndSpecification( append( specification, ( (AndSpecification) this ).operands() ) ); - } - else - { - return new AndSpecification( iterable( this, specification ) ); - } - } - - @SuppressWarnings( "unchecked" ) - public OrSpecification or( Specification<Composite> specification ) - { - if( this instanceof OrSpecification ) - { - return new OrSpecification( append( specification, ( (OrSpecification) this ).operands() ) ); - } - else - { - return new OrSpecification( iterable( this, specification ) ); - } - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/GeSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/GeSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/GeSpecification.java deleted file mode 100644 index 82e9e38..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/GeSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Greater or equals Specification. - */ -public class GeSpecification<T> - extends ComparisonSpecification<T> -{ - public GeSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) >= 0; - } - - @Override - public String toString() - { - return property.toString() + ">=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/GtSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/GtSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/GtSpecification.java deleted file mode 100644 index 883120b..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/GtSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Greater than Specification. - */ -public class GtSpecification<T> - extends ComparisonSpecification<T> -{ - public GtSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) > 0; - } - - @Override - public String toString() - { - return property.toString() + ">" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/LeSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/LeSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/LeSpecification.java deleted file mode 100644 index 3715ffd..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/LeSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Less or equals Specification. - */ -public class LeSpecification<T> - extends ComparisonSpecification<T> -{ - public LeSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) <= 0; - } - - @Override - public String toString() - { - return property.toString() + "<=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/LtSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/LtSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/LtSpecification.java deleted file mode 100644 index 6d3002a..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/LtSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Lesser than Specification. - */ -public class LtSpecification<T> - extends ComparisonSpecification<T> -{ - public LtSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) < 0; - } - - @Override - public String toString() - { - return property.toString() + "<" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationContainsSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationContainsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationContainsSpecification.java deleted file mode 100644 index d8a6b2e..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationContainsSpecification.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2007-2011 Rickard Ãberg. - * Copyright 2007-2010 Niclas Hedhman. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.association.ManyAssociation; -import org.qi4j.api.composite.Composite; - -/** - * ManyAssociation Contains Specification. - */ -public class ManyAssociationContainsSpecification<T> - extends ExpressionSpecification -{ - private final ManyAssociationFunction<T> manyAssociationFunction; - private final T value; - - public ManyAssociationContainsSpecification( ManyAssociationFunction<T> manyAssociationFunction, T value ) - { - this.manyAssociationFunction = manyAssociationFunction; - this.value = value; - } - - public ManyAssociationFunction<T> manyAssociation() - { - return manyAssociationFunction; - } - - public T value() - { - return value; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - ManyAssociation<T> collection = manyAssociationFunction.map( item ); - if( collection == null ) - { - return false; - } - return collection.contains( value ); - } - - @Override - public String toString() - { - return manyAssociationFunction + " contains:" + value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationFunction.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationFunction.java b/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationFunction.java deleted file mode 100644 index e91cdeb..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/ManyAssociationFunction.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2007-2011 Rickard Ãberg. - * Copyright 2007-2010 Niclas Hedhman. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Member; -import java.lang.reflect.Proxy; -import org.qi4j.api.association.AssociationStateHolder; -import org.qi4j.api.association.ManyAssociation; -import org.qi4j.api.composite.Composite; -import org.qi4j.api.composite.CompositeInstance; -import org.qi4j.functional.Function; - -/** - * Function to get Entity ManyAssociations. - */ -public class ManyAssociationFunction<T> - implements Function<Composite, ManyAssociation<T>> -{ - private final AssociationFunction<?> traversedAssociation; - private final ManyAssociationFunction<?> traversedManyAssociation; - private final NamedAssociationFunction<?> traversedNamedAssociation; - private final AccessibleObject accessor; - - public ManyAssociationFunction( AssociationFunction<?> traversedAssociation, - ManyAssociationFunction<?> traversedManyAssociation, - NamedAssociationFunction<?> traversedNamedAssociation, - AccessibleObject accessor - ) - { - this.traversedAssociation = traversedAssociation; - this.traversedManyAssociation = traversedManyAssociation; - this.traversedNamedAssociation = traversedNamedAssociation; - this.accessor = accessor; - } - - public AssociationFunction<?> traversedAssociation() - { - return traversedAssociation; - } - - public ManyAssociationFunction<?> traversedManyAssociation() - { - return traversedManyAssociation; - } - - public NamedAssociationFunction<?> traversedNamedAssociation() - { - return traversedNamedAssociation; - } - - public AccessibleObject accessor() - { - return accessor; - } - - @Override - public ManyAssociation<T> map( Composite entity ) - { - try - { - Object target = entity; - if( traversedAssociation != null ) - { - target = traversedAssociation.map( entity ).get(); - } - if( traversedManyAssociation != null ) - { - throw new IllegalArgumentException( "Cannot traverse ManyAssociations" ); - } - if( traversedNamedAssociation != null ) - { - throw new IllegalArgumentException( "Cannot traverse NamedAssociations" ); - } - - CompositeInstance handler = (CompositeInstance) Proxy.getInvocationHandler( target ); - return ( (AssociationStateHolder) handler.state() ).manyAssociationFor( accessor ); - } - catch( IllegalArgumentException e ) - { - throw e; - } - catch( Throwable e ) - { - throw new IllegalArgumentException( e ); - } - } - - @Override - public String toString() - { - if( traversedAssociation != null ) - { - return traversedAssociation.toString() + "." + ( (Member) accessor ).getName(); - } - else - { - return ( (Member) accessor ).getName(); - } - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/MatchesSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/MatchesSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/MatchesSpecification.java deleted file mode 100644 index 6cde577..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/MatchesSpecification.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.property.Property; - -/** - * Regular expression match Specification. - */ -public class MatchesSpecification - extends ExpressionSpecification -{ - private PropertyFunction<String> property; - private Object value; - - public MatchesSpecification( PropertyFunction<String> property, String regexp ) - { - this.property = property; - this.value = regexp; - } - - public MatchesSpecification( PropertyFunction<String> property, Variable variable ) - { - this.property = property; - this.value = variable; - } - - public PropertyFunction<String> property() - { - return property; - } - - public Object value() - { - return value; - } - - public String regexp() - { - return ( String ) value; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Property<String> prop = property.map( item ); - - if( prop == null ) - { - return false; - } - - String val = prop.get(); - - if( val == null ) - { - return false; - } - - return val.matches( ( String ) value ); - } - - @Override - public String toString() - { - return new StringBuilder() - .append( "( " ) - .append( property ) - .append( " matches " ) - .append( "\"" ) - .append( value ) - .append( "\"" ) - .append( " )" ) - .toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsNameSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsNameSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsNameSpecification.java deleted file mode 100644 index c20987e..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsNameSpecification.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2011-2012 Niclas Hedhman. - * Copyright 2014 Paul Merlin. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.association.NamedAssociation; -import org.qi4j.api.composite.Composite; - -/** - * NamedAssociation Contains Specification. - */ -public class NamedAssociationContainsNameSpecification<T> - extends ExpressionSpecification -{ - private final NamedAssociationFunction<T> namedAssociationFunction; - private final String name; - - public NamedAssociationContainsNameSpecification( NamedAssociationFunction<T> namedAssociationFunction, String name ) - { - this.namedAssociationFunction = namedAssociationFunction; - this.name = name; - } - - public NamedAssociationFunction<T> namedAssociation() - { - return namedAssociationFunction; - } - - public String name() - { - return name; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - NamedAssociation<T> collection = namedAssociationFunction.map( item ); - if( collection == null ) - { - return false; - } - return collection.containsName( name ); - } - - @Override - public String toString() - { - return namedAssociationFunction + " contains name:" + name; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsSpecification.java deleted file mode 100644 index 22079aa..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationContainsSpecification.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2011-2012 Niclas Hedhman. - * Copyright 2014 Paul Merlin. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.association.NamedAssociation; -import org.qi4j.api.composite.Composite; - -/** - * NamedAssociation Contains Specification. - */ -public class NamedAssociationContainsSpecification<T> - extends ExpressionSpecification -{ - private final NamedAssociationFunction<T> namedAssociationFunction; - private final T value; - - public NamedAssociationContainsSpecification( NamedAssociationFunction<T> namedAssociationFunction, T value ) - { - this.namedAssociationFunction = namedAssociationFunction; - this.value = value; - } - - public NamedAssociationFunction<T> namedAssociation() - { - return namedAssociationFunction; - } - - public T value() - { - return value; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - NamedAssociation<T> collection = namedAssociationFunction.map( item ); - if( collection == null ) - { - return false; - } - return collection.nameOf( value ) != null; - } - - @Override - public String toString() - { - return namedAssociationFunction + " contains:" + value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationFunction.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationFunction.java b/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationFunction.java deleted file mode 100644 index 3f7b8e3..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/NamedAssociationFunction.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2011-2012 Niclas Hedhman. - * Copyright 2014 Paul Merlin. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Member; -import java.lang.reflect.Proxy; -import org.qi4j.api.association.AssociationStateHolder; -import org.qi4j.api.association.NamedAssociation; -import org.qi4j.api.composite.Composite; -import org.qi4j.api.composite.CompositeInstance; -import org.qi4j.functional.Function; - -/** - * Function to get Entity NamedAssociations. - */ -public class NamedAssociationFunction<T> - implements Function<Composite, NamedAssociation<T>> -{ - private final AssociationFunction<?> traversedAssociation; - private final ManyAssociationFunction<?> traversedManyAssociation; - private final NamedAssociationFunction<?> traversedNamedAssociation; - private final AccessibleObject accessor; - - public NamedAssociationFunction( AssociationFunction<?> traversedAssociation, - ManyAssociationFunction<?> traversedManyAssociation, - NamedAssociationFunction<?> traversedNamedAssociation, - AccessibleObject accessor - ) - { - this.traversedAssociation = traversedAssociation; - this.traversedManyAssociation = traversedManyAssociation; - this.traversedNamedAssociation = traversedNamedAssociation; - this.accessor = accessor; - } - - public AssociationFunction<?> traversedAssociation() - { - return traversedAssociation; - } - - public ManyAssociationFunction<?> traversedManyAssociation() - { - return traversedManyAssociation; - } - - public NamedAssociationFunction<?> traversedNamedAssociation() - { - return traversedNamedAssociation; - } - - public AccessibleObject accessor() - { - return accessor; - } - - @Override - public NamedAssociation<T> map( Composite entity ) - { - try - { - Object target = entity; - if( traversedAssociation != null ) - { - target = traversedAssociation.map( entity ).get(); - } - if( traversedManyAssociation != null ) - { - throw new IllegalArgumentException( "Cannot traverse ManyAssociations" ); - } - if( traversedNamedAssociation != null ) - { - throw new IllegalArgumentException( "Cannot traverse NamedAssociations" ); - } - - CompositeInstance handler = (CompositeInstance) Proxy.getInvocationHandler( target ); - return ( (AssociationStateHolder) handler.state() ).namedAssociationFor( accessor ); - } - catch( IllegalArgumentException e ) - { - throw e; - } - catch( Throwable e ) - { - throw new IllegalArgumentException( e ); - } - } - - @Override - public String toString() - { - if( traversedAssociation != null ) - { - return traversedAssociation.toString() + "." + ( (Member) accessor ).getName(); - } - else - { - return ( (Member) accessor ).getName(); - } - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/NeSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/NeSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/NeSpecification.java deleted file mode 100644 index e864184..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/NeSpecification.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Not equals Specification. - */ -public class NeSpecification<T> - extends ComparisonSpecification<T> -{ - public NeSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - protected boolean compare( T value ) - { - return !value.equals( this.value ); - } - - @Override - public String toString() - { - return property.toString() + "!=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/NotSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/NotSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/NotSpecification.java deleted file mode 100644 index a85500d..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/NotSpecification.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Specification; -import org.qi4j.functional.Specifications; - -/** - * NOT Specification. - */ -public class NotSpecification implements Specification<Composite> -{ - private Specification<Composite> operand; - - public NotSpecification( Specification<Composite> operand ) - { - this.operand = operand; - } - - public Specification<Composite> operand() - { - return operand; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - return Specifications.not( operand ).satisfiedBy( item ); - } - - @Override - public String toString() - { - return "!" + operand.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/OrSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/OrSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/OrSpecification.java deleted file mode 100644 index ac775d6..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/OrSpecification.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Specification; -import org.qi4j.functional.Specifications; - -/** - * OR Specification. - */ -public class OrSpecification - extends BinarySpecification -{ - - public OrSpecification( Iterable<Specification<Composite>> operands ) - { - super( operands ); - } - - @Override - public boolean satisfiedBy( Composite item ) - { - return Specifications.or( operands ).satisfiedBy( item ); - } - - @Override - public String toString() - { - StringBuilder sb = new StringBuilder( "(" ); - String or = ""; - for( Specification<Composite> operand : operands ) - { - sb.append( or ).append( operand ); - or = " or "; - } - return sb.append( ")" ).toString(); - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/OrderBy.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/OrderBy.java b/core/api/src/main/java/org/qi4j/api/query/grammar/OrderBy.java deleted file mode 100644 index 097171b..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/OrderBy.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2007 Niclas Hedhman. - * Copyright 2008 Alin Dreghiciu. - * - * 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Query sorting segment. - */ -public class OrderBy -{ - /** - * Order direction. - */ - public enum Order - { - ASCENDING, DESCENDING - } - - /** - * Order. - */ - private final PropertyFunction<?> propertyReference; - /** - * Direction. - */ - private final Order order; - - /** - * Constructor. - * - * @param propertyReference property that determines the order; cannot be null - * @param order direction - * - * @throws IllegalArgumentException - If property is null - */ - public OrderBy( final PropertyFunction<?> propertyReference, - final Order order - ) - { - if( propertyReference == null ) - { - throw new IllegalArgumentException( "Ordering property cannot be null" ); - } - this.propertyReference = propertyReference; - this.order = order; - } - - /** - * Getter. - * - * @return property; cannot be null - */ - public PropertyFunction<?> property() - { - return propertyReference; - } - - /** - * Getter. - * - * @return direction; cannot be null - */ - public Order order() - { - return order; - } - - @Override - public String toString() - { - return new StringBuilder() - .append( propertyReference ) - .append( " " ) - .append( order ) - .toString(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyFunction.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyFunction.java b/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyFunction.java deleted file mode 100644 index b3f4c37..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyFunction.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright 2007-2011 Rickard Ãberg. - * Copyright 2007-2010 Niclas Hedhman. - * - * 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 - * ied. - * - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.qi4j.api.query.grammar; - -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Member; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Proxy; -import java.lang.reflect.Type; -import org.qi4j.api.association.Association; -import org.qi4j.api.composite.Composite; -import org.qi4j.api.composite.CompositeInstance; -import org.qi4j.api.property.GenericPropertyInfo; -import org.qi4j.api.property.Property; -import org.qi4j.api.query.NotQueryableException; -import org.qi4j.api.query.QueryExpressionException; -import org.qi4j.api.util.Classes; -import org.qi4j.functional.Function; - -import static org.qi4j.api.util.Classes.typeOf; - -/** - * Function to get Entity Properties. - */ -public class PropertyFunction<T> - implements Function<Composite, Property<T>> -{ - private final PropertyFunction<?> traversedProperty; - private final AssociationFunction<?> traversedAssociation; - private final ManyAssociationFunction<?> traversedManyAssociation; - private final NamedAssociationFunction<?> traversedNamedAssociation; - private final AccessibleObject accessor; - - public PropertyFunction( PropertyFunction<?> traversedProperty, - AssociationFunction<?> traversedAssociation, - ManyAssociationFunction<?> traversedManyAssociation, - NamedAssociationFunction<?> traversedNamedAssociation, - AccessibleObject accessor - ) - { - this.traversedProperty = traversedProperty; - this.traversedAssociation = traversedAssociation; - this.traversedManyAssociation = traversedManyAssociation; - this.traversedNamedAssociation = traversedNamedAssociation; - this.accessor = accessor; - - // Verify that the property accessor is not marked as non queryable - NotQueryableException.throwIfNotQueryable( accessor ); - // Verify that the property type itself (value composites) is not marked as non queryable - - Type returnType = typeOf( accessor ); - if( !Property.class.isAssignableFrom( Classes.RAW_CLASS.map( returnType ) ) ) - { - throw new QueryExpressionException( "Not a property type:" + returnType ); - } - Type propertyTypeAsType = GenericPropertyInfo.toPropertyType( returnType ); - if( propertyTypeAsType instanceof ParameterizedType ) - { - propertyTypeAsType = ( (ParameterizedType) propertyTypeAsType ).getRawType(); - } - - if( !( propertyTypeAsType instanceof Class ) ) - { - throw new QueryExpressionException( "Unsupported property type:" + propertyTypeAsType ); - } - @SuppressWarnings( "unchecked" ) - Class<T> type = (Class<T>) propertyTypeAsType; - NotQueryableException.throwIfNotQueryable( type ); - } - - public PropertyFunction<?> traversedProperty() - { - return traversedProperty; - } - - public AssociationFunction<?> traversedAssociation() - { - return traversedAssociation; - } - - public ManyAssociationFunction<?> traversedManyAssociation() - { - return traversedManyAssociation; - } - - public NamedAssociationFunction<?> traversedNamedAssociation() - { - return traversedNamedAssociation; - } - - public AccessibleObject accessor() - { - return accessor; - } - - @Override - public Property<T> map( Composite entity ) - { - try - { - Object target = entity; - if( traversedProperty != null ) - { - Property<?> property = traversedProperty.map( entity ); - if( property == null ) - { - return null; - } - target = property.get(); - } - else if( traversedAssociation != null ) - { - Association<?> association = traversedAssociation.map( entity ); - if( association == null ) - { - return null; - } - target = association.get(); - } - else if( traversedManyAssociation != null ) - { - throw new IllegalArgumentException( "Cannot evaluate a ManyAssociation" ); - } - else if( traversedNamedAssociation != null ) - { - throw new IllegalArgumentException( "Cannot evaluate a NamedAssociation" ); - } - - if( target == null ) - { - return null; - } - - CompositeInstance handler = (CompositeInstance) Proxy.getInvocationHandler( target ); - return handler.state().propertyFor( accessor ); - } - catch( IllegalArgumentException e ) - { - throw e; - } - catch( Throwable e ) - { - throw new IllegalArgumentException( e ); - } - } - - @Override - public String toString() - { - if( traversedProperty != null ) - { - return traversedProperty.toString() + "." + ( (Member) accessor ).getName(); - } - else if( traversedAssociation != null ) - { - return traversedAssociation.toString() + "." + ( (Member) accessor ).getName(); - } - else - { - return ( (Member) accessor ).getName(); - } - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNotNullSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNotNullSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNotNullSpecification.java deleted file mode 100644 index c73afa8..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNotNullSpecification.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.property.Property; - -/** - * Property not null Specification. - */ -public class PropertyNotNullSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<T> property; - - public PropertyNotNullSpecification( PropertyFunction<T> property ) - { - this.property = property; - } - - public PropertyFunction<T> property() - { - return property; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Property<T> prop = property.map( item ); - - if( prop == null ) - { - return false; - } - - return prop.get() != null; - } - - @Override - public String toString() - { - return property.toString() + "is not null"; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNullSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNullSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNullSpecification.java deleted file mode 100644 index 7f7908f..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyNullSpecification.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.property.Property; - -/** - * Property null Specification. - */ -public class PropertyNullSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<T> property; - - public PropertyNullSpecification( PropertyFunction<T> property ) - { - this.property = property; - } - - public PropertyFunction<T> property() - { - return property; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Property<T> prop = property.map( item ); - - if( prop == null ) - { - return true; - } - - return prop.get() == null; - } - - @Override - public String toString() - { - return property.toString() + "is null"; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyReference.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyReference.java b/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyReference.java deleted file mode 100644 index 7b865de..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/PropertyReference.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.property.Property; -import org.qi4j.functional.Function; - -/** - * Property Reference. - */ -public interface PropertyReference -{ - <T> Function<Composite, Property<T>> reference(); -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/QuerySpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/QuerySpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/QuerySpecification.java deleted file mode 100644 index 3c033d7..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/QuerySpecification.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -import org.qi4j.api.composite.Composite; -import org.qi4j.functional.Specification; - -/** - * This should be used when doing native queries, such as SQL, SPARQL or similar. EntityFinders can choose - * what type of query languages they can understand by checking the language property of a QuerySpecification - */ -public class QuerySpecification - implements Specification<Composite> -{ - public static boolean isQueryLanguage( String language, Specification<Composite> specification ) - { - if( !( specification instanceof QuerySpecification ) ) - { - return false; - } - - return ( (QuerySpecification) specification ).language().equals( language ); - } - - private String language; - private String query; - - public QuerySpecification( String language, String query ) - { - this.language = language; - this.query = query; - } - - public String language() - { - return language; - } - - public String query() - { - return query; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - return false; - } - - @Override - public String toString() - { - return language + ":" + query; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/Variable.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/Variable.java b/core/api/src/main/java/org/qi4j/api/query/grammar/Variable.java deleted file mode 100644 index 205347b..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/Variable.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.query.grammar; - -/** - * Query Variable name. - */ -public class Variable -{ - private String name; - - public Variable( String name ) - { - this.name = name; - } - - public String variableName() - { - return name; - } - - @Override - public String toString() - { - return name; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/grammar/package.html ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/package.html b/core/api/src/main/java/org/qi4j/api/query/grammar/package.html deleted file mode 100644 index e0b80f6..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/grammar/package.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. ---> -<html> - <body> - <h2>Query Grammar.</h2> - </body> -</html> http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/query/package.html ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/query/package.html b/core/api/src/main/java/org/qi4j/api/query/package.html deleted file mode 100644 index 27e4455..0000000 --- a/core/api/src/main/java/org/qi4j/api/query/package.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. ---> -<html> - <body> - <h2>Query API.</h2> - </body> -</html> http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/Availability.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/Availability.java b/core/api/src/main/java/org/qi4j/api/service/Availability.java deleted file mode 100644 index 3905a1d..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/Availability.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2010, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -/** - * Services can implement this interface in order to allow Zest to ask - * it whether it is currently available for use or not. This is accessed - * by clients through the ServiceReference of the service. Services that do not - * implement this are always considered to be available. - */ -public interface Availability -{ - /** - * Implementations should return true if the underlying service is currently available for use. - * - * Reasons why a service might not be available is either if it has been configured not to be (see - * the Enabled interface), or if an underlying resource is currently unavailable. - * - * @return true if the service is available, false otherwise. - */ - boolean isAvailable(); -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/DuplicateServiceIdentityException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/DuplicateServiceIdentityException.java b/core/api/src/main/java/org/qi4j/api/service/DuplicateServiceIdentityException.java deleted file mode 100644 index fffa42a..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/DuplicateServiceIdentityException.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2008, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -import org.qi4j.api.common.InvalidApplicationException; - -/** - * Thrown when a duplicate service identity is detected. - */ -public class DuplicateServiceIdentityException - extends InvalidApplicationException -{ - public DuplicateServiceIdentityException( String string ) - { - super( string ); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/IdentityDescriptor.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/IdentityDescriptor.java b/core/api/src/main/java/org/qi4j/api/service/IdentityDescriptor.java deleted file mode 100644 index 13e0ee5..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/IdentityDescriptor.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.qi4j.api.service; - -/** - * Identity Descriptor. - */ -public interface IdentityDescriptor -{ - String identity(); -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ImportedServiceDescriptor.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ImportedServiceDescriptor.java b/core/api/src/main/java/org/qi4j/api/service/ImportedServiceDescriptor.java deleted file mode 100644 index 6590049..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ImportedServiceDescriptor.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2007, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -import org.qi4j.api.composite.ModelDescriptor; - -/** - * {@code ServiceDescriptor} provides meta information of a service. - */ -public interface ImportedServiceDescriptor - extends ModelDescriptor, IdentityDescriptor -{ - Class<? extends ServiceImporter> serviceImporter(); - - Class<?> type(); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/NoSuchServiceException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/NoSuchServiceException.java b/core/api/src/main/java/org/qi4j/api/service/NoSuchServiceException.java deleted file mode 100644 index 9ce08ae..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/NoSuchServiceException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2012, Niclas Hedhman. All Rights Reserved. - * - * 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. - */ - -package org.qi4j.api.service; - -import org.qi4j.api.composite.NoSuchCompositeException; - -/** - * Thrown when no visible service of the requested type is found. - */ -public class NoSuchServiceException extends NoSuchCompositeException -{ - public NoSuchServiceException( String typeName, String moduleName ) - { - super( "ServiceComposite", typeName, moduleName ); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceActivation.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceActivation.java b/core/api/src/main/java/org/qi4j/api/service/ServiceActivation.java deleted file mode 100644 index 87a7cad..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ServiceActivation.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2012 Paul Merlin. - * - * 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. - */ -package org.qi4j.api.service; - -import org.qi4j.api.activation.Activators; - -/** - * Convenience interface for simple Service Activation. - * - * Let your ServiceComposite extends ServiceActivation and implement it in one of its Mixins. - * A corresponding Activator is automatically registered. - */ -@Activators( ServiceActivation.ServiceActivator.class ) -public interface ServiceActivation -{ - - /** - * Called after ServiceComposite Activation. - */ - void activateService() - throws Exception; - - /** - * Called before ServiceComposite Passivation. - */ - void passivateService() - throws Exception; - - /** - * Service Activator. - */ - class ServiceActivator - extends ServiceActivatorAdapter<ServiceActivation> - { - - @Override - public void afterActivation( ServiceReference<ServiceActivation> activated ) - throws Exception - { - activated.get().activateService(); - } - - @Override - public void beforePassivation( ServiceReference<ServiceActivation> passivating ) - throws Exception - { - passivating.get().passivateService(); - } - - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceActivatorAdapter.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceActivatorAdapter.java b/core/api/src/main/java/org/qi4j/api/service/ServiceActivatorAdapter.java deleted file mode 100644 index 966226e..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ServiceActivatorAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2014 Paul Merlin. - * - * 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. - */ -package org.qi4j.api.service; - -import org.qi4j.api.activation.Activator; - -/** - * Adapter for Service Activator. - * - * @param <ServiceType> Type of the service. - */ -public class ServiceActivatorAdapter<ServiceType> - implements Activator<ServiceReference<ServiceType>> -{ - /** - * Called before Service activation. - * @param activating Activating Service - */ - @Override - public void beforeActivation( ServiceReference<ServiceType> activating ) - throws Exception - { - } - - /** - * Called after Service activation. - * @param activated Activated Service - */ - @Override - public void afterActivation( ServiceReference<ServiceType> activated ) - throws Exception - { - } - - /** - * Called before Service passivation. - * @param passivating Passivating Service - */ - @Override - public void beforePassivation( ServiceReference<ServiceType> passivating ) - throws Exception - { - } - - /** - * Called after Service passivation. - * @param passivated Passivated Service - */ - @Override - public void afterPassivation( ServiceReference<ServiceType> passivated ) - throws Exception - { - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceComposite.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceComposite.java b/core/api/src/main/java/org/qi4j/api/service/ServiceComposite.java deleted file mode 100644 index f27b994..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ServiceComposite.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2007, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -import org.qi4j.api.composite.Composite; -import org.qi4j.api.entity.Identity; - -/** - * All Composites being used to implement Services - * must extend this interface. - */ -public interface ServiceComposite - extends Identity, Composite -{ -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceDescriptor.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceDescriptor.java b/core/api/src/main/java/org/qi4j/api/service/ServiceDescriptor.java deleted file mode 100644 index d6a55ee..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ServiceDescriptor.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2007, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -import org.qi4j.api.composite.CompositeDescriptor; -import org.qi4j.api.composite.StatefulCompositeDescriptor; - -/** - * {@code ServiceDescriptor} provides meta informations of a service. - */ -public interface ServiceDescriptor - extends CompositeDescriptor, IdentityDescriptor, StatefulCompositeDescriptor -{ - boolean isInstantiateOnStartup(); - - <T> Class<T> configurationType(); -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceFinder.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceFinder.java b/core/api/src/main/java/org/qi4j/api/service/ServiceFinder.java deleted file mode 100644 index 3ffb213..0000000 --- a/core/api/src/main/java/org/qi4j/api/service/ServiceFinder.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2008, Rickard Ãberg. All Rights Reserved. - * - * 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. - * - */ - -package org.qi4j.api.service; - -import java.lang.reflect.Type; - -/** - * Interface used to query for ServiceReferences. - * <p> - * Each ServiceFinder is - * obtained from a specific Module, and the lookup rules are the following: - * </p> - * <ol> - * <li>First look in the same Module as the ServiceFinder</li> - * <li>Then look in the same Layer as the ServiceFinder. Any Services declared - * with Visibility Layer and Application should be included</li> - * <li>Then look in the used Layers. Any Services declared with Visibility Application - * should be included</li> - * </ol> - * <p> - * Both native Zest services and imported services are considered, with preference to native services. - * </p> - */ -public interface ServiceFinder -{ - /** - * Find a ServiceReference that implements the given type. - * - * @param serviceType the type that the Service must implement - * - * @return a ServiceReference if one is found - * - * @throws NoSuchServiceException if no service of serviceType is found - */ - <T> ServiceReference<T> findService( Class<T> serviceType ) - throws NoSuchServiceException; - - /** - * Find a ServiceReference that implements the given type. - * - * @param serviceType the type that the Service must implement - * - * @return a ServiceReference if one is found - * - * @throws NoSuchServiceException if no service of serviceType is found - */ - <T> ServiceReference<T> findService( Type serviceType ) - throws NoSuchServiceException; - - /** - * Find ServiceReferences that implements the given type. - * <p> - * The order of the references is such that Services more local to the querying - * Module is earlier in the list. - * </p> - * - * @param serviceType the type that the Services must implement - * - * @return an iterable of ServiceReferences for the given type. It is empty if none exist - */ - <T> Iterable<ServiceReference<T>> findServices( Class<T> serviceType ); - - /** - * Find ServiceReferences that implements the given type. - * <p> - * The order of the references is such that Services more local to the querying - * Module is earlier in the list. - * </p> - * - * @param serviceType the type that the Services must implement - * - * @return an iterable of ServiceReferences for the given type. It is empty if none exist - */ - <T> Iterable<ServiceReference<T>> findServices( Type serviceType ); -}
