= @ObjectLifecycle
:Notice: 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.

Indicates that a method is an _Object_ lifecycle callback method, one of (created, loaded, saved, ...).

May only be placed on _domain object_ methods, not _mixins_ nor _domain services_ .

By placing the xref:refguide:applib:index/annotation/ObjectLifecycle.adoc[ObjectLifecycle] annotation on a method, a contract with the meta-model is enforced, such that this method must be recognized by the meta-model and cannot be ignored.

It is complementary to xref:refguide:applib:index/annotation/MemberSupport.adoc[MemberSupport] and xref:refguide:applib:index/annotation/ObjectSupport.adoc[ObjectSupport] , and in some sense acts as the semantic counterpart to xref:refguide:applib:index/annotation/Programmatic.adoc[Programmatic] .

== API

[source,java]
.ObjectLifecycle.java
----
@interface ObjectLifecycle {
}
----

