You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/07/31 04:59:19 UTC
[39/81] [abbrv] [partial] zest-java git commit: First round of
changes to move to org.apache.zest namespace.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/common/QualifiedName.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/common/QualifiedName.java b/core/api/src/main/java/org/qi4j/api/common/QualifiedName.java
deleted file mode 100644
index a869791..0000000
--- a/core/api/src/main/java/org/qi4j/api/common/QualifiedName.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (c) 2009, 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.common;
-
-import java.io.Serializable;
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Member;
-import org.qi4j.api.util.NullArgumentException;
-
-/**
- * QualifiedName is a representation of Property names to their full declaration.
- * <p>
- * A QualifiedName is created by combining the name of a method and the name of the type that declares the method.
- * This class also contains many static utility methods to manage QualifiedName instances.
- * </p>
- * <p>
- * <strong>NOTE: Unless you do very generic libraries, entity stores and other extensions that is deeply coupled into
- * the Zest runtime, it is very unlikely you will need to use this class directly.</strong>
- * </p>
- * <p>
- * It is also important to notice that the QualifiedName needs to be long-term stable, as the names are written
- * to persistent storage. So any changes in the formatting <strong>must be made in a backward-compatible manner
- * </strong>.
- * </p>
- * <p>
- * The QualifiedName has two intrinsic parts, one being the {@code type} and the other the {@code name}. The
- * {@code type} comes from the class where the QualifiedName originates from and internally kept as a {@link TypeName}
- * instance. The name is the name from the method name. When the QualifiedName instance is converted to an external
- * string representation, via the offical and formal {@link #toString()} method, the {@code type} is normalized, i.e.
- * any dollar characters ($) in the name are replaced by dashes (-), to make them URI friendly.
- * </p>
- * <p>
- * QualifiedName instances are immutable, implements {@link #hashCode()} and {@link #equals(Object)} as a value
- * object and can safely be used as keys in {@link java.util.Map}.
- */
-public final class QualifiedName
- implements Comparable<QualifiedName>, Serializable
-{
- private final TypeName typeName;
- private final String name;
-
- /**
- * Creates a QualifiedName from a method.
- * <p>
- * This factory method will create a QualifiedName from the Method itself.
- *
- * </p>
- *
- * @param method Type method that returns a Property, for which the QualifiedName will be representing.
- *
- * @return A QualifiedName representing this method.
- *
- * @throws NullArgumentException If the {@code method} argument passed is null.
- */
- public static QualifiedName fromAccessor( AccessibleObject method )
- {
- NullArgumentException.validateNotNull( "method", method );
- return fromClass( ( (Member) method ).getDeclaringClass(), ( (Member) method ).getName() );
- }
-
- /**
- * Creates a QualifiedName instance from the Class and a given name.
- * <p>
- * This factory method converts the {@code type} to a {@link TypeName} and appends the given {@code name}.
- *
- * @param type The Class that is the base of the QualifiedName.
- * @param name The qualifier name which will be appended to the base name derived from the {@code type} argument.
- *
- * @return A QualifiedName instance representing the {@code type} and {@code name} arguments.
- *
- * @throws NullArgumentException if any of the two arguments are {@code null}, or if the name string is empty.
- */
- public static QualifiedName fromClass( Class type, String name )
- {
- return new QualifiedName( TypeName.nameOf( type ), name );
- }
-
- /**
- * Creates a Qualified name from a type as string and a name qualifier.
- *
- * @param type The type name as a a string, which must be properly formatted. No checks for correctly formatted
- * type name is performed.
- * @param name The qualifier name which will be appended to the base name derived from the {@code type} argument.
- *
- * @return A QualifiedName instance representing the {@code type} and {@code name} arguments.
- *
- * @throws NullArgumentException if any of the two arguments are {@code null} or either string is empty.
- */
- public static QualifiedName fromName( String type, String name )
- {
- return new QualifiedName( TypeName.nameOf( type ), name );
- }
-
- /**
- * Creates a QualifiedName from the external string format of QualifiedName.
- * <p>
- * This factory method is the reverse of {@link QualifiedName#toString() } method, and creates a new QualifiedName
- * instance from the string representation of the QualifiedName.
- * </p>
- *
- * @param fullQualifiedName The QualifiedName external string representation to be converted back into a QualifiedName
- * instance.
- *
- * @return The QualifiedName instance represented by the {@code qualifiedName} argument.
- *
- * @throws IllegalArgumentException If the {@code qualifiedName} argument has wrong format.
- */
- public static QualifiedName fromFQN( String fullQualifiedName )
- {
- NullArgumentException.validateNotEmpty( "qualifiedName", fullQualifiedName );
- int idx = fullQualifiedName.lastIndexOf( ":" );
- if( idx == -1 )
- {
- throw new IllegalArgumentException( "Name '" + fullQualifiedName + "' is not a qualified name" );
- }
- final String type = fullQualifiedName.substring( 0, idx );
- final String name = fullQualifiedName.substring( idx + 1 );
- return new QualifiedName( TypeName.nameOf( type ), name );
- }
-
- QualifiedName( TypeName typeName, String name )
- {
- NullArgumentException.validateNotNull( "typeName", typeName );
- NullArgumentException.validateNotEmpty( "name", name );
- this.typeName = typeName;
- this.name = name;
- }
-
- /**
- * Returns the normalized string of the type part of the QualifiedName.
- *
- * <p>
- * The normalized type name means that all dollar ($) characters have been replaced by dashes (-).
- * </p>
- *
- * @return the normalized string of the type part of the QualifiedName.
- */
- public String type()
- {
- return typeName.normalized();
- }
-
- /**
- * Returns the name component of the QualifiedName.
- *
- * @return the name component of the QualifiedName.
- */
- public String name()
- {
- return name;
- }
-
- /**
- * Returns the URI of the QualifiedName.
- *
- * <p>
- * The URI is the {@link #toNamespace()} followed by the {@code name} component.
- * <p>
- *
- * @return the URI of the QualifiedName.
- *
- * @see #toNamespace()
- */
- public String toURI()
- {
- return toNamespace() + name;
- }
-
- /**
- * Return the URI of the {@link TypeName} component of the QualifiedName.
- * <p>
- * The URI of the {@link TypeName} component is in the form of;
- * </p>
- * <pre>
- * "urn:qi4j:type:" normalizedClassName
- * </pre>
- * <p>
- * where {@code normalizedClassName} is the fully-qualified class name having had any dollar ($) characters replaced
- * by URI friendly dashes (-), with a trailing hash (#). Examples;
- * </p>
- * <pre>
- * urn:qi4j:type:org.qi4j.api.common.QualifiedName#
- * urn:qi4j:type:org.qi4j.samples.MyClass-MyInnerClass#
- * </pre>
- *
- * @return the URI of the {@link TypeName} component of the QualifiedName.
- */
- public String toNamespace()
- {
- return typeName.toURI() + "#";
- }
-
- /**
- * Return the formal and official, long-term stable, external string representation of a QualifiedName.
- * <p>
- * This returns the {@link org.qi4j.api.common.TypeName#toString()} followed by the {@code name} component.
- * </p>
- *
- * @return the formal and official, long-term stable, external string representation of a QualifiedName.
- */
- @Override
- public String toString()
- {
- return typeName + ":" + name;
- }
-
- @Override
- public boolean equals( Object o )
- {
- if( this == o )
- {
- return true;
- }
- if( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- QualifiedName that = (QualifiedName) o;
-
- return name.equals( that.name ) && typeName.equals( that.typeName );
- }
-
- @Override
- public int hashCode()
- {
- return 31 * typeName.hashCode() + name.hashCode();
- }
-
- @Override
- public int compareTo( QualifiedName other )
- {
- final int result = typeName.compareTo( other.typeName );
- if( result != 0 )
- {
- return result;
- }
- return name.compareTo( other.name );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/common/TypeName.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/common/TypeName.java b/core/api/src/main/java/org/qi4j/api/common/TypeName.java
deleted file mode 100644
index 6a485e6..0000000
--- a/core/api/src/main/java/org/qi4j/api/common/TypeName.java
+++ /dev/null
@@ -1,111 +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.common;
-
-import java.io.Serializable;
-import java.lang.reflect.Type;
-import org.qi4j.api.util.Classes;
-import org.qi4j.api.util.NullArgumentException;
-
-/**
- * Represents a Type name.
- */
-public final class TypeName
- implements Serializable, Comparable<TypeName>
-{
- private final String name;
-
- public static TypeName nameOf( Class type )
- {
- NullArgumentException.validateNotNull( "type", type );
- return new TypeName( type.getName() );
- }
-
- public static TypeName nameOf( Type type )
- {
- return nameOf( Classes.RAW_CLASS.map( type ) );
- }
-
- public static TypeName nameOf( String typeName )
- {
- return new TypeName( typeName );
- }
-
- private TypeName( String name )
- {
- NullArgumentException.validateNotEmpty( "name", name );
- this.name = name;
- }
-
- public String normalized()
- {
- return Classes.normalizeClassToURI( name );
- }
-
- public String toURI()
- {
- return Classes.toURI( name );
- }
-
- public String name()
- {
- return name;
- }
-
- @Override
- public String toString()
- {
- return name;
- }
-
- public boolean isClass( final Class<?> type )
- {
- return type.getName().equals( name );
- }
-
- @Override
- public boolean equals( final Object o )
- {
- if( this == o )
- {
- return true;
- }
- if( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- final TypeName other = (TypeName) o;
-
- return name.equals( other.name );
- }
-
- @Override
- public int hashCode()
- {
- return name.hashCode();
- }
-
- @Override
- public int compareTo( final TypeName typeName )
- {
- return this.name.compareTo( typeName.name );
- }
-}
-
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/common/UseDefaults.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/common/UseDefaults.java b/core/api/src/main/java/org/qi4j/api/common/UseDefaults.java
deleted file mode 100644
index 94f4446..0000000
--- a/core/api/src/main/java/org/qi4j/api/common/UseDefaults.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2009, 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.common;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotation to denote that the initial value of a Property will be the default value for the type if none is
- * specified during construction.
- * <p>
- * These are the default values used for various types:
- * </p>
- * <pre>
- * Byte: 0
- * Short: 0
- * Character: 0
- * Integer: 0
- * Long: 0L
- * Double: 0.0d
- * Float: 0.0f
- * Boolean: false
- * String: ""
- * List: empty java.util.ArrayList
- * Set: empty java.util.HashSet
- * Collection: empty java.util.ArrayList
- * enum: first declared value
- * </pre>
- * <p>
- * If this annotation is not used, the property will be set to null, and unless {@code @Optional} is declared
- * is not allowed.
- * </p>
- * <p>
- * It is also possible to change the default values for Composites during the assembly. This is done by calling the
- * {@code org.qi4j.bootstrap.ModuleAssembly#forMixin(Class)} method.
- * </p>
- * <p>
- * Example;
- * Let's assume that we have the following mixin type;
- *
- * <pre><code>
- * public interface SomeType
- * {
- * @UseDefaults
- * Property<String> someValue();
- * }
- * </code></pre>
- * And that we want to have {@code someValue()} to be initialized to "<unknown>" instead of the empty string.
- * Then we need to declare the default for that with the following in the assembler.
- * <pre><code>
- * public void assemble( ModuleAssembly module )
- * {
- * module.forMixin( SomeType.class ).declareDefaults().someValue().set( "<unknown>" );
- * }
- * }
- * </code></pre>
- */
-@SuppressWarnings( "JavadocReference" )
-@Retention( RetentionPolicy.RUNTIME )
-@Target( { ElementType.METHOD, ElementType.FIELD } )
-@Documented
-public @interface UseDefaults
-{
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/common/Visibility.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/common/Visibility.java b/core/api/src/main/java/org/qi4j/api/common/Visibility.java
deleted file mode 100644
index 0f38f36..0000000
--- a/core/api/src/main/java/org/qi4j/api/common/Visibility.java
+++ /dev/null
@@ -1,40 +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.common;
-
-/**
- * Visibility is a core concept in the Zest structure system. It defines the locale of composites and objects, i.e.
- * how far they can be 'seen' and therefor be used.
- * <p>
- * When a Composite or Object is declared in the assembly phase, and no visibility is set, only other
- * composites/objects within the same module can use that declaration. For a declared composite/object to be usable
- * from other modules a higher visibility must be set, either that the Composite/Object can be used by others within
- * the same Layer, or even to be used by those in the layer above.
- * </p>
- */
-public enum Visibility
-{
- /**
- * Artifact is visible only in the declaring module (default)
- */
- module,
- /**
- * Artifact is visible to all modules in the same layer
- */
- layer,
- /**
- * Artifact is visible to other modules in the same layer and any modules in extending layers
- */
- application
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/common/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/common/package.html b/core/api/src/main/java/org/qi4j/api/common/package.html
deleted file mode 100644
index f29de5d..0000000
--- a/core/api/src/main/java/org/qi4j/api/common/package.html
+++ /dev/null
@@ -1,81 +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>Common API.</h2>
- <p>
- The Common API package is a collection of really low-level types needed at the core of the Zest™ Runtime. It is also
- a collection of types that are not particularly cohesive, and effectively this package contains the loose ends
- that does not belong elsewhere.
- </p>
- <p>
- In this package, you can safely ignore the following classes;
- </p>
- <ul>
- <li>MetaInfo</li>
- <li>QualifiedName</li>
- <li>TypeName</li>
- </ul>
- <p>UNLESS you are into deep integration into the Zest™ Runtime.</p>
-
- <h3>@AppliesTo and AppliesToFilter</h3>
- <p>
- This tandem of interface + annotation are primarily used for Generic Fragments, to indicate which methods on the
- interface the fragment should be applied to.
- </p>
-
- <h3>@Optional</h3>
- <p>
- In Zest™, method arguments, property values and injected fields are not allowed to be null by default. To allow
- any of these to be null, i.e. undeclared, it is required that the argument, field or method is marked with the
- @Optional annotation.
- </p>
-
- <h3>@UseDefaults</h3>
- <p>
- Since null is not allowed without the @Optional annotation, it can sometimes by tedious to initialize all
- the property values. And the @UseDefaults annotation allows us to declare that Zest™ should set the Property
- to a default value. These are either the pre-defined ones, or can be set per property declaration during the
- assembly.
- </p>
-
- <h3>@Visibility</h3>
- <p>
- Visibility is another innovative concept in Zest™, which leverage the structure system (Application, Layer, Module)
- to limit the 'reach' when requesting composites and objects. The Visibility is declared per Composite/Object,
- preferably in the most restrictive mode possible, and the visibility resolver will ensure a predictable resolution
- algorithm;
- </p>
- <ol>
- <li>Search the module of the caller first. If one and only one composite type fulfilling the request is available
- return that to the caller. If two or more are found, throw an AmbiguousTypeException. If no composite found
- continue to the next step.
- </li>
- <li>Search all modules in the Layer of the caller for composite that has a declaration other than
- <code>Visibility.module</code>. If one and only one composite type fulfilling the request is available
- return that to the caller. If two or more are found, throw an AmbiguousTypeException. If no composite found
- continue to the next step.
- </li>
- <li>Search all modules in the Layer(s) (if any) directly below of the caller for composite that has a declaration of
- <code>Visibility.application</code>. If one and only one composite type fulfilling the request is available
- return that to the caller. If two or more are found, throw an AmbiguousTypeException. If no composite found
- continue to the next step.
- </li>
- <li>Throw an NoSuchCompositeException (or related) exception.</li>
- </ol>
- </body>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/AmbiguousTypeException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/AmbiguousTypeException.java b/core/api/src/main/java/org/qi4j/api/composite/AmbiguousTypeException.java
deleted file mode 100644
index 34f3653..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/AmbiguousTypeException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2008 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.composite;
-
-/**
- * This Exception is thrown when more than one Composite implements a MixinType
- * that one tries to use to create a Composite instance from.
- * <p>
- * For instance;
- * </p>
- * <pre><code>
- * public interface AbcComposite extends TransientComposite, Abc
- * {}
- *
- * public interface DefComposite extends TransientComposite, Def
- * {}
- *
- * public interface Abc
- * {}
- *
- * public interface Def extends Abc
- * {}
- *
- *
- * TransientBuilder cb = factory.newTransientBuilder( Abc.class );
- * </code></pre>
- * <p>
- * In the code above, both the AbcComposite and DefComposite implement Abc, and therefore
- * the <code>newTransientBuilder</code> method can not unambiguously figure out which
- * one is intended.
- * </p>
- */
-public class AmbiguousTypeException
- extends RuntimeException
-{
- private static final long serialVersionUID = 1L;
-
- public AmbiguousTypeException( String message )
- {
- super( message );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/Composite.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/Composite.java b/core/api/src/main/java/org/qi4j/api/composite/Composite.java
deleted file mode 100644
index 91662fb..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/Composite.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2007, 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.composite;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.property.PropertyMixin;
-
-/**
- * Base Composite interface.
- * <p>
- * All Composite objects must implement this interface. Let the
- * Composite interface extend this one. An implementation will be provided
- * by the framework.
- * </p>
- * <p>
- * Properties and associations are handled by default.
- * </p>
- */
-@Mixins( { PropertyMixin.class } )
-public interface Composite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/CompositeContext.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/CompositeContext.java b/core/api/src/main/java/org/qi4j/api/composite/CompositeContext.java
deleted file mode 100644
index d8a2aa7..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/CompositeContext.java
+++ /dev/null
@@ -1,80 +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.composite;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import org.qi4j.api.Qi4j;
-import org.qi4j.api.structure.Module;
-import org.qi4j.functional.Iterables;
-
-import static org.qi4j.functional.Iterables.toArray;
-
-/**
- * Thread-associated composites. This is basically a ThreadLocal which maintains a reference
- * to a TransientComposite instance for each thread. This can be used to implement various context
- * patterns without having to pass the context explicitly as a parameter to methods.
- */
-public class CompositeContext<T extends TransientComposite>
- extends ThreadLocal<T>
-{
- private Module module;
- private Class<T> type;
-
- public CompositeContext( Module module, Class<T> type )
- {
- this.module = module;
- this.type = type;
- }
-
- @Override
- protected T initialValue()
- {
- return module.newTransient( type );
- }
-
- @SuppressWarnings( "unchecked" )
- public T proxy()
- {
- TransientComposite composite = get();
-
- Iterable<Class<?>> types = Qi4j.FUNCTION_COMPOSITE_INSTANCE_OF.map( composite ).types();
- return (T) Proxy.newProxyInstance(
- composite.getClass().getClassLoader(),
- toArray( Class.class, Iterables.<Class>cast( types ) ),
- new ContextInvocationhandler() );
- }
-
- private class ContextInvocationhandler
- implements InvocationHandler
- {
-
- @Override
- public Object invoke( Object object, Method method, Object[] objects )
- throws Throwable
- {
- try
- {
- return method.invoke( get(), objects );
- }
- catch( InvocationTargetException e )
- {
- throw e.getTargetException();
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/CompositeDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/CompositeDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/CompositeDescriptor.java
deleted file mode 100644
index 40b4462..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/CompositeDescriptor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2009, 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.composite;
-
-/**
- * Composite Descriptor.
- */
-public interface CompositeDescriptor
- extends ModelDescriptor
-{
- Class<?> primaryType();
-
- Iterable<Class<?>> mixinTypes();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/CompositeInstance.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/CompositeInstance.java b/core/api/src/main/java/org/qi4j/api/composite/CompositeInstance.java
deleted file mode 100644
index 79f8d62..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/CompositeInstance.java
+++ /dev/null
@@ -1,39 +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.composite;
-
-import java.lang.reflect.InvocationHandler;
-import org.qi4j.api.property.StateHolder;
-import org.qi4j.api.structure.MetaInfoHolder;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.type.HasTypes;
-
-/**
- * Composite Instance.
- */
-public interface CompositeInstance
- extends InvocationHandler, CompositeInvoker, HasTypes, MetaInfoHolder
-{
- <T> T proxy();
-
- <T> T newProxy( Class<T> mixinType )
- throws IllegalArgumentException;
-
- Module module();
-
- CompositeDescriptor descriptor();
-
- StateHolder state();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/CompositeInvoker.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/CompositeInvoker.java b/core/api/src/main/java/org/qi4j/api/composite/CompositeInvoker.java
deleted file mode 100644
index 5bd8d11..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/CompositeInvoker.java
+++ /dev/null
@@ -1,35 +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.composite;
-
-import java.lang.reflect.Method;
-
-/**
- * Composite method invoker.
- * <p>
- * All composites must implement this interface. Methods that are invoked
- * may reside either in the public Composite interface or in any internal mixins.
- * </p>
- * <p>
- * <strong><i>NOTE:</i></strong>Client code should never use method in this class. We have not been able to hide this
- * from client code, but IF we find a way to do, this interface may disappear.
- * </p>
- */
-public interface CompositeInvoker
-{
-
- Object invokeComposite( Method method, Object[] args )
- throws Throwable;
-
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/ConstructorDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/ConstructorDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/ConstructorDescriptor.java
deleted file mode 100644
index 6e74dd9..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/ConstructorDescriptor.java
+++ /dev/null
@@ -1,25 +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.composite;
-
-import java.lang.reflect.Constructor;
-
-/**
- * Composite constructor descriptor.
- */
-public interface ConstructorDescriptor
-{
- Constructor<?> constructor();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/DecoratorMixin.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/DecoratorMixin.java b/core/api/src/main/java/org/qi4j/api/composite/DecoratorMixin.java
deleted file mode 100644
index 6b81844..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/DecoratorMixin.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2009 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.api.composite;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import org.qi4j.api.injection.scope.Uses;
-
-/**
- * Generic decorator mixin that allows a Composite to wrap
- * any other Composite as long as they share an interface.
- * <p>
- * Can be used to effectively implement
- * singleton mixins, since the decorated object can be shared between
- * many instances.
- * </p>
- */
-public class DecoratorMixin
- implements InvocationHandler
-{
- private Object delegate;
-
- public DecoratorMixin( @Uses Object delegate )
- {
- if( delegate instanceof Class )
- {
- Thread.dumpStack();
- }
- this.delegate = delegate;
- }
-
- @Override
- public Object invoke( Object object, Method method, Object[] args )
- throws Throwable
- {
- if( delegate instanceof InvocationHandler )
- {
- InvocationHandler handler = (InvocationHandler) delegate;
- return handler.invoke( object, method, args );
- }
- else
- {
- try
- {
- return method.invoke( delegate, args );
- }
- catch( InvocationTargetException e )
- {
- throw e.getCause();
- }
- catch( IllegalArgumentException e )
- {
- String message = constructMessage( method, args );
- throw new IllegalArgumentException( message, e );
- }
- }
- }
-
- private String constructMessage( Method method, Object[] args )
- {
- StringBuilder builder = new StringBuilder();
- builder.append( "\nmethod: " );
- builder.append( method.getDeclaringClass().getName() );
- builder.append( "." );
- builder.append( method.getName() );
- builder.append( "\ndelegate: " );
- builder.append( delegate );
- builder.append( "\ndelegateType: " );
- builder.append( delegate == null ? "n/a" : delegate.getClass().getName() );
- builder.append( "\narguments: \n" );
- for( Object arg : args )
- {
- builder.append( " " );
- Class argClass = arg.getClass();
- if( Proxy.isProxyClass( argClass ) )
- {
- builder.append( Proxy.getInvocationHandler( arg ).getClass().getName() );
- }
- else
- {
- builder.append( argClass.getName() );
- }
- builder.append( '\n' );
- }
- return builder.toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/DependencyDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/DependencyDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/DependencyDescriptor.java
deleted file mode 100644
index 70d7d06..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/DependencyDescriptor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.composite;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
-/**
- * Composite dependency descriptor.
- */
-public interface DependencyDescriptor
-{
- Annotation injectionAnnotation();
-
- Type injectionType();
-
- Class<?> injectedClass();
-
- Class<?> rawInjectionType();
-
- boolean optional();
-
- Annotation[] annotations();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/InjectedFieldDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/InjectedFieldDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/InjectedFieldDescriptor.java
deleted file mode 100644
index 2f7297e..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/InjectedFieldDescriptor.java
+++ /dev/null
@@ -1,26 +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.composite;
-
-import java.lang.reflect.Field;
-
-/**
- * Composite injected field descriptor.
- */
-public interface InjectedFieldDescriptor
-{
- Field field();
-
- DependencyDescriptor dependency();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/InjectedMethodDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/InjectedMethodDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/InjectedMethodDescriptor.java
deleted file mode 100644
index 8888d32..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/InjectedMethodDescriptor.java
+++ /dev/null
@@ -1,25 +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.composite;
-
-import java.lang.reflect.Method;
-
-/**
- * Composite injected method descriptor.
- */
-public interface InjectedMethodDescriptor
-{
- Method method();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/InjectedParametersDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/InjectedParametersDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/InjectedParametersDescriptor.java
deleted file mode 100644
index 301c56d..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/InjectedParametersDescriptor.java
+++ /dev/null
@@ -1,22 +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.composite;
-
-/**
- * Composite constructors and method injected parameters descriptor.
- */
-public interface InjectedParametersDescriptor
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/InvalidCompositeException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/InvalidCompositeException.java b/core/api/src/main/java/org/qi4j/api/composite/InvalidCompositeException.java
deleted file mode 100644
index e5b86c0..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/InvalidCompositeException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2007 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.api.composite;
-
-/**
- * This exception is thrown if a Composite is invalid.
- */
-public class InvalidCompositeException
- extends RuntimeException
-{
- public InvalidCompositeException( String message )
- {
- super( message );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/InvalidValueCompositeException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/InvalidValueCompositeException.java b/core/api/src/main/java/org/qi4j/api/composite/InvalidValueCompositeException.java
deleted file mode 100644
index 60a48dd..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/InvalidValueCompositeException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2009 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.api.composite;
-
-/**
- * This exception is thrown if a ValueComposite is invalid.
- */
-public class InvalidValueCompositeException
- extends RuntimeException
-{
- public InvalidValueCompositeException( String message )
- {
- super( message );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/MethodDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/MethodDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/MethodDescriptor.java
deleted file mode 100644
index 2f88f35..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/MethodDescriptor.java
+++ /dev/null
@@ -1,25 +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.composite;
-
-import java.lang.reflect.Method;
-
-/**
- * Composite Method Descriptor.
- */
-public interface MethodDescriptor
-{
- Method method();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/MissingMethodException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/MissingMethodException.java b/core/api/src/main/java/org/qi4j/api/composite/MissingMethodException.java
deleted file mode 100644
index ae362cb..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/MissingMethodException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2009 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.api.composite;
-
-/**
- * This exception is thrown if client code tries to invoke a non-existing Composite method.
- */
-public class MissingMethodException
- extends RuntimeException
-{
- public MissingMethodException( String message )
- {
- super( message );
- }
-
- public MissingMethodException( String message, NoSuchMethodException e )
- {
- super(message,e);
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/ModelDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/ModelDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/ModelDescriptor.java
deleted file mode 100644
index b0651f0..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/ModelDescriptor.java
+++ /dev/null
@@ -1,33 +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.composite;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.structure.MetaInfoHolder;
-import org.qi4j.api.type.HasTypes;
-
-/**
- * Composite ModelDescriptor.
- */
-public interface ModelDescriptor extends HasTypes, MetaInfoHolder
-{
- Visibility visibility();
-
- boolean isAssignableTo( Class<?> type );
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/NoSuchCompositeException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/NoSuchCompositeException.java b/core/api/src/main/java/org/qi4j/api/composite/NoSuchCompositeException.java
deleted file mode 100644
index b404779..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/NoSuchCompositeException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2008, 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.composite;
-
-import org.qi4j.api.common.InvalidApplicationException;
-
-/**
- * This exception is thrown if client code tries to create a non-existing Composite type.
- */
-public class NoSuchCompositeException
- extends InvalidApplicationException
-{
- private static final long serialVersionUID = 1L;
-
- private final String compositeType;
- private final String moduleName;
-
- protected NoSuchCompositeException( String metaType, String compositeType, String moduleName )
- {
- super( "Could not find any visible " + metaType + " of type [" + compositeType + "] in module [" +
- moduleName + "]." );
- this.compositeType = compositeType;
- this.moduleName = moduleName;
- }
-
- public String compositeType()
- {
- return compositeType;
- }
-
- public String moduleName()
- {
- return moduleName;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/NoSuchTransientException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/NoSuchTransientException.java b/core/api/src/main/java/org/qi4j/api/composite/NoSuchTransientException.java
deleted file mode 100644
index e6a6f61..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/NoSuchTransientException.java
+++ /dev/null
@@ -1,28 +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.composite;
-
-/**
- * This exception is thrown if client code tries to create a non-existing TransientComposite type.
- */
-public class NoSuchTransientException extends NoSuchCompositeException
-{
- public NoSuchTransientException( String typeName, String moduleName )
- {
- super( "TransientComposite", typeName, moduleName );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/PropertyMapper.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/PropertyMapper.java b/core/api/src/main/java/org/qi4j/api/composite/PropertyMapper.java
deleted file mode 100644
index 054a369..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/PropertyMapper.java
+++ /dev/null
@@ -1,580 +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.composite;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import org.qi4j.api.Qi4j;
-import org.qi4j.api.property.GenericPropertyInfo;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.util.Classes;
-import org.qi4j.api.util.Dates;
-import org.qi4j.api.value.ValueComposite;
-
-/**
- * Transfer java.util.Properties to Composite properties
- */
-public final class PropertyMapper
-{
-
- private final static Map<Type, MappingStrategy> STRATEGY;
-
- static
- {
- STRATEGY = new HashMap<>();
- STRATEGY.put( Integer.class, new IntegerMapper() );
- STRATEGY.put( Long.class, new LongMapper() );
- STRATEGY.put( Short.class, new ShortMapper() );
- STRATEGY.put( Byte.class, new ByteMapper() );
- STRATEGY.put( String.class, new StringMapper() );
- STRATEGY.put( Character.class, new CharMapper() );
- STRATEGY.put( Float.class, new FloatMapper() );
- STRATEGY.put( Double.class, new DoubleMapper() );
- STRATEGY.put( Date.class, new DateMapper() );
- STRATEGY.put( Boolean.class, new BooleanMapper() );
- STRATEGY.put( BigDecimal.class, new BigDecimalMapper() );
- STRATEGY.put( BigInteger.class, new BigIntegerMapper() );
- STRATEGY.put( Enum.class, new EnumMapper() );
- STRATEGY.put( Array.class, new ArrayMapper() );
- STRATEGY.put( Map.class, new MapMapper() );
- STRATEGY.put( List.class, new ListMapper() );
- STRATEGY.put( Set.class, new SetMapper() );
- STRATEGY.put( ValueComposite.class, new ValueCompositeMapper() );
- }
-
- /**
- * Populate the Composite with properties from the given properties object.
- *
- * @param props properties object
- * @param composite the composite instance
- *
- * @throws IllegalArgumentException if properties could not be transferred to composite
- */
- public static void map( Properties props, Composite composite )
- throws IllegalArgumentException
- {
- for( Map.Entry<Object, Object> objectObjectEntry : props.entrySet() )
- {
- try
- {
- String methodName = objectObjectEntry.getKey().toString();
- Method propertyMethod = composite.getClass().getInterfaces()[ 0 ].getMethod( methodName );
- propertyMethod.setAccessible( true );
- Object value = objectObjectEntry.getValue();
- Type propertyType = GenericPropertyInfo.propertyTypeOf( propertyMethod );
-
- value = mapToType( composite, propertyType, value.toString() );
-
- @SuppressWarnings( "unchecked" )
- Property<Object> property = (Property<Object>) propertyMethod.invoke( composite );
- property.set( value );
- }
- catch( NoSuchMethodException e )
- {
- throw new IllegalArgumentException( "Could not find any property named " + objectObjectEntry.getKey() );
- }
- catch( IllegalAccessException e )
- {
- //noinspection ThrowableInstanceNeverThrown
- throw new IllegalArgumentException( "Could not populate property named " + objectObjectEntry.getKey(), e );
- }
- catch( InvocationTargetException e )
- {
- //noinspection ThrowableInstanceNeverThrown
- String message = "Could not populate property named " + objectObjectEntry.getKey();
- throw new IllegalArgumentException( message, e );
- }
- }
- }
-
- @SuppressWarnings( "raw" )
- private static Object mapToType( Composite composite, Type propertyType, Object value )
- {
- final String stringValue = value.toString();
- MappingStrategy strategy;
- if( propertyType instanceof Class )
- {
- Class type = (Class) propertyType;
- if( type.isArray() )
- {
- strategy = STRATEGY.get( Array.class );
- }
- else if( Enum.class.isAssignableFrom( Classes.RAW_CLASS.map( propertyType ) ) )
- {
- strategy = STRATEGY.get( Enum.class );
- }
- else
- {
- strategy = STRATEGY.get( type );
- }
- if( strategy == null ) // If null, try with the ValueComposite Mapper...
- {
- strategy = STRATEGY.get( ValueComposite.class );
- }
- }
- else if( propertyType instanceof ParameterizedType )
- {
- ParameterizedType type = ( (ParameterizedType) propertyType );
-
- if( type.getRawType() instanceof Class )
- {
- Class clazz = (Class) type.getRawType();
- if( List.class.isAssignableFrom( clazz ) )
- {
- strategy = STRATEGY.get( List.class );
- }
- else if( Set.class.isAssignableFrom( clazz ) )
- {
- strategy = STRATEGY.get( Set.class );
- }
- else if( Map.class.isAssignableFrom( clazz ) )
- {
- strategy = STRATEGY.get( Map.class );
- }
- else
- {
- throw new IllegalArgumentException( propertyType + " is not supported." );
- }
- }
- else
- {
- throw new IllegalArgumentException( propertyType + " is not supported." );
- }
- }
- else
- {
- throw new IllegalArgumentException( propertyType + " is not supported." );
- }
-
- if( strategy == null )
- {
- throw new IllegalArgumentException( propertyType + " is not supported." );
- }
-
- return strategy.map( composite, propertyType, stringValue );
- }
-
- /**
- * Load a Properties object from the given stream, close it, and then populate
- * the Composite with the properties.
- *
- * @param propertyInputStream properties input stream
- * @param composite the instance
- *
- * @throws IOException if the stream could not be read
- */
-
- public static void map( InputStream propertyInputStream, Composite composite )
- throws IOException
- {
- if( propertyInputStream != null )
- {
- Properties configProps = new Properties();
- try
- {
- configProps.load( propertyInputStream );
- }
- finally
- {
- propertyInputStream.close();
- }
- map( configProps, composite );
- }
- }
-
- /**
- * Create Properties object which is backed by the given Composite.
- *
- * @param composite the instance
- *
- * @return properties instance
- */
- public static Properties toJavaProperties( final Composite composite )
- {
- return new Properties()
- {
- private static final long serialVersionUID = 3550125427530538865L;
-
- @Override
- public Object get( Object o )
- {
- try
- {
- Method propertyMethod = composite.getClass().getMethod( o.toString() );
- Property<?> property = (Property<?>) propertyMethod.invoke( composite );
- return property.get();
- }
- catch( NoSuchMethodException | IllegalAccessException | InvocationTargetException e )
- {
- return null;
- }
- }
-
- @Override
- public Object put( Object o, Object o1 )
- {
- Object oldValue = get( o );
-
- try
- {
- Method propertyMethod = composite.getClass().getMethod( o.toString(), Object.class );
- propertyMethod.invoke( composite, o1 );
- }
- catch( NoSuchMethodException | IllegalAccessException | InvocationTargetException e )
- {
- e.printStackTrace();
- }
-
- return oldValue;
- }
- };
- }
-
- private static void tokenize( String valueString, boolean mapSyntax, TokenizerCallback callback )
- {
- char[] data = valueString.toCharArray();
-
- int oldPos = 0;
- for( int pos = 0; pos < data.length; pos++ )
- {
- char ch = data[ pos ];
- if( ch == '\"' )
- {
- pos = resolveQuotes( valueString, callback, data, pos, '\"' );
- oldPos = pos;
- }
- if( ch == '\'' )
- {
- pos = resolveQuotes( valueString, callback, data, pos, '\'' );
- oldPos = pos;
- }
- if( ch == ',' || ( mapSyntax && ch == ':' ) )
- {
- String token = new String( data, oldPos, pos - oldPos );
- callback.token( token );
- oldPos = pos + 1;
- }
- }
- String token = new String( data, oldPos, data.length - oldPos );
- callback.token( token );
- }
-
- private static int resolveQuotes( String valueString,
- TokenizerCallback callback,
- char[] data,
- int pos, char quote
- )
- {
- boolean found = false;
- for( int j = pos + 1; j < data.length; j++ )
- {
- if( !found )
- {
- if( data[ j ] == quote )
- {
- String token = new String( data, pos + 1, j - pos - 1 );
- callback.token( token );
- found = true;
- }
- }
- else
- {
- if( data[ j ] == ',' )
- {
- return j + 1;
- }
- }
- }
- if( !found )
- {
- throw new IllegalArgumentException( "String is not quoted correctly: " + valueString );
- }
- return data.length;
- }
-
- private interface TokenizerCallback
- {
- void token( String token );
- }
-
- private interface MappingStrategy
- {
- Object map( Composite composite, Type type, String value );
- }
-
- private static class StringMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return value;
- }
- }
-
- private static class IntegerMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Integer( value.trim() );
- }
- }
-
- private static class FloatMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Float( value.trim() );
- }
- }
-
- private static class DoubleMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Double( value.trim() );
- }
- }
-
- private static class LongMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Long( value.trim() );
- }
- }
-
- private static class ShortMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Short( value.trim() );
- }
- }
-
- private static class ByteMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new Byte( value.trim() );
- }
- }
-
- private static class CharMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return value.trim().charAt( 0 );
- }
- }
-
- private static class BigDecimalMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new BigDecimal( value.trim() );
- }
- }
-
- private static class BigIntegerMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return new BigInteger( value.trim() );
- }
- }
-
- private static class EnumMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( "unchecked" )
- public Object map( Composite composite, Type type, String value )
- {
- return Enum.valueOf( (Class<Enum>) type, value );
- }
- }
-
- private static class DateMapper
- implements MappingStrategy
- {
- @Override
- public Object map( Composite composite, Type type, String value )
- {
- return Dates.fromString( value.trim() );
- }
- }
-
- private static class ValueCompositeMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( "unchecked" )
- public Object map( Composite composite, Type type, String value )
- {
- return Qi4j.FUNCTION_COMPOSITE_INSTANCE_OF.map( composite ).module().newValueFromSerializedState( (Class<Object>) type, value );
- }
- }
-
- private static class ArrayMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public Object map( final Composite composite, Type type, String value )
- {
- final Class arrayType = ( (Class) type ).getComponentType();
- final ArrayList result = new ArrayList();
- tokenize( value, false, new TokenizerCallback()
- {
- @Override
- public void token( String token )
- {
- result.add( mapToType( composite, arrayType, token ) );
- }
- } );
- return result.toArray( (Object[]) Array.newInstance( arrayType, result.size() ) );
- }
- }
-
- private static class BooleanMapper
- implements MappingStrategy
- {
- @Override
- public Object map( final Composite composite, Type type, String value )
- {
- return Boolean.valueOf( value.trim() );
- }
- }
-
- private static class ListMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public Object map( final Composite composite, Type type, String value )
- {
- final Type dataType = ( (ParameterizedType) type ).getActualTypeArguments()[ 0 ];
- final Collection result = new ArrayList();
- tokenize( value, false, new TokenizerCallback()
- {
- @Override
- public void token( String token )
- {
- result.add( mapToType( composite, dataType, token ) );
- }
- } );
- return result;
- }
- }
-
- private static class SetMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public Object map( final Composite composite, Type type, String value )
- {
- final Type dataType = ( (ParameterizedType) type ).getActualTypeArguments()[ 0 ];
- final Collection result = new HashSet();
- tokenize( value, false, new TokenizerCallback()
- {
- @Override
- public void token( String token )
- {
- result.add( mapToType( composite, dataType, token ) );
- }
- } );
- return result;
- }
- }
-
- private static class MapMapper
- implements MappingStrategy
- {
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public Object map( final Composite composite, Type generictype, String value )
- {
- ParameterizedType type = (ParameterizedType) generictype;
- final Type keyType = type.getActualTypeArguments()[ 0 ];
- final Type valueType = type.getActualTypeArguments()[ 0 ];
- final Map result = new HashMap();
- tokenize( value, true, new TokenizerCallback()
- {
- boolean keyArrivingNext = true;
- String key;
-
- @Override
- public void token( String token )
- {
- if( keyArrivingNext )
- {
- key = token;
- keyArrivingNext = false;
- }
- else
- {
- result.put( mapToType( composite, keyType, key ), mapToType( composite, valueType, token ) );
- keyArrivingNext = true;
- }
- }
- } );
- return result;
- }
- }
-
- private PropertyMapper()
- {
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/StateDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/StateDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/StateDescriptor.java
deleted file mode 100644
index 3eebcd4..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/StateDescriptor.java
+++ /dev/null
@@ -1,32 +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.composite;
-
-import org.qi4j.api.common.QualifiedName;
-import org.qi4j.api.property.PropertyDescriptor;
-
-/**
- * Composite State Descriptor.
- */
-public interface StateDescriptor
-{
- PropertyDescriptor findPropertyModelByName( String name )
- throws IllegalArgumentException;
-
- PropertyDescriptor findPropertyModelByQualifiedName( QualifiedName name )
- throws IllegalArgumentException;
-
- Iterable<? extends PropertyDescriptor> properties();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/StatefulCompositeDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/StatefulCompositeDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/StatefulCompositeDescriptor.java
deleted file mode 100644
index ba44494..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/StatefulCompositeDescriptor.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.composite;
-
-/**
- * Stateful Composite Descriptor.
- */
-public interface StatefulCompositeDescriptor
-{
- StateDescriptor state();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/TransientBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/TransientBuilder.java b/core/api/src/main/java/org/qi4j/api/composite/TransientBuilder.java
deleted file mode 100644
index 58b4ef6..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/TransientBuilder.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2007 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.api.composite;
-
-import org.qi4j.api.common.ConstructionException;
-
-/**
- * TransientBuilders are used to instantiate TransientComposites. They can be acquired from
- * {@link TransientBuilderFactory#newTransientBuilder(Class)} and allows the client
- * to provide additional settings before instantiating the TransientComposite.
- */
-public interface TransientBuilder<T>
-{
- /**
- * Provide objects that can be injected into mixins that has the @Uses
- * dependency injection annotation.
- *
- * @param usedObjects The objects that can be injected into mixins.
- *
- * @return the transient builder instance
- *
- * @see org.qi4j.api.injection.scope.Uses
- */
- TransientBuilder<T> use( Object... usedObjects );
-
- /**
- * Get a representation of the state for the new Composite.
- * It is possible to access and update properties and associations,
- * even immutable ones since the builder represents the initial state.
- *
- * @return a proxy implementing the Composite type
- */
- T prototype();
-
- /**
- * Get a representation of the state of the given type for the new Composite.
- * This is primarily used if you want to provide state for a private mixin type.
- *
- * @param mixinType the mixin which you want to provide state for
- *
- * @return a proxy implementing the given mixin type
- */
- <K> K prototypeFor( Class<K> mixinType );
-
- /**
- * Create a new Composite instance.
- *
- * @return a new Composite instance
- *
- * @throws ConstructionException thrown if it was not possible to instantiate the Composite
- */
- T newInstance()
- throws ConstructionException;
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/TransientBuilderFactory.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/TransientBuilderFactory.java b/core/api/src/main/java/org/qi4j/api/composite/TransientBuilderFactory.java
deleted file mode 100644
index b06c58f..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/TransientBuilderFactory.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2007, 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.composite;
-
-import org.qi4j.api.common.ConstructionException;
-
-/**
- * This factory creates TransientComposites and the TransientBuilders.
- *
- * TransientComposite instances are very flexible in what it can reference, but are restricted in where they
- * can be used. So, TransientComposites are mainly recommended where Values, Entities and Services can not be used,
- * but they can also not be used to store state, be serialized across a network or have automatic equals/hashCode
- * calculations.
- */
-public interface TransientBuilderFactory
-{
- /**
- * Create a builder for creating new TransientComposites that implements the given TransientComposite type.
- *
- * @param mixinType an interface that describes the TransientComposite to be instantiated
- *
- * @return a TransientBuilder for creation of TransientComposites implementing the interface
- *
- * @throws NoSuchTransientException if no composite extending the mixinType has been registered
- */
- <T> TransientBuilder<T> newTransientBuilder( Class<T> mixinType )
- throws NoSuchTransientException;
-
- /**
- * Instantiate a TransientComposite of the given type.
- *
- * @param mixinType the TransientComposite type to instantiate
- *
- * @return a new TransientComposite instance
- *
- * @throws NoSuchTransientException if no composite extending the mixinType has been registered
- * @throws org.qi4j.api.common.ConstructionException
- * if the composite could not be instantiated
- */
- <T> T newTransient( Class<T> mixinType, Object... uses )
- throws NoSuchTransientException, ConstructionException;
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/TransientComposite.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/TransientComposite.java b/core/api/src/main/java/org/qi4j/api/composite/TransientComposite.java
deleted file mode 100644
index 8b21e88..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/TransientComposite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2009 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
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.api.composite;
-
-/**
- * Transient Composite Type.
- *
- * TransientComposites have the following criteria;
- * <ul>
- * <li>Does not persist its state, and is not serializable</li>
- * <li>Can not be referenced from Properties, Associations, ValueComposites nor Entities</li>
- * <li>Can reference all types</li>
- * <li>No lifecycle</li>
- * <li>equals/hashCode is delegated to a single Mixin implementing the methods, like any other method</li>
- * </ul>
- */
-public interface TransientComposite
- extends Composite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/TransientDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/TransientDescriptor.java b/core/api/src/main/java/org/qi4j/api/composite/TransientDescriptor.java
deleted file mode 100644
index 0df706c..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/TransientDescriptor.java
+++ /dev/null
@@ -1,23 +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.composite;
-
-/**
- * TransientComposite Descriptor.
- */
-public interface TransientDescriptor
- extends CompositeDescriptor, StatefulCompositeDescriptor
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/api/src/main/java/org/qi4j/api/composite/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/composite/package.html b/core/api/src/main/java/org/qi4j/api/composite/package.html
deleted file mode 100644
index 00feaed..0000000
--- a/core/api/src/main/java/org/qi4j/api/composite/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>Composite API.</h2>
- </body>
-</html>