AT&T 2.0.19 Code drop, stage 1
[aaf/authz.git] / misc / env / src / main / java / org / onap / aaf / misc / env / Creatable.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  *
20  */
21
22 package org.onap.aaf.misc.env;
23
24
25 /**
26  * <h1>Creatable</h1>
27  * <b>**Must implement constructor T(ENV env, long currentTimeMillis);**</b><p>
28  *
29  * This interface exists to cover basic LifeCycle semantics so that Objects
30  * can be created dynamically and managed at a basic level (destroy(env)).
31  * 
32  * @author Jonathan
33  *
34  * @param <T>
35  */
36 public interface Creatable<T> {
37         /**
38          * Return the timestamp (Unix long) when this object was created.<p>
39          * This can be used to see if the object is out of date in certain
40          * circumstances, or perhaps has already been notified in others.
41          * 
42          * @return long
43          */
44         public abstract long created();
45         
46         /**
47          * Allow LifeCycle aware process to signal this element as destroyed.
48          *  
49          * @param env
50          */
51         public abstract void destroy(Env env);
52 }