blob: f77ec6de1d2ba93b6913d43cc80f710f98847b7d [file] [log] [blame]
<%#
* 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 <%= polygene.packageName %>.model.<%= polygene.current.name %>;
import org.apache.polygene.api.identity.HasIdentity;
import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
<%
for( var imp in polygene.current.imported ) {
if( !imp.startsWith( "java.lang" )
&& imp.includes(".") ) {
%><%- "import " + imp + ";"; %>
<%
}
} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %> extends HasIdentity
{
interface State
{
<% for( var idx in polygene.current.state ) {
%> <%- polygene.current.state[idx]; %>
<% }
%> }
abstract class Mixin
implements <%= polygene.current.clazz.name %>
{
@This
private State state; // Reference to private State instance
}
}