= ApplicationFeatureViewModel
: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.

View model identified by xref:refguide:applib:index/services/appfeat/ApplicationFeatureId.adoc[ApplicationFeatureId] and backed by an xref:refguide:applib:index/services/appfeat/ApplicationFeature.adoc[ApplicationFeature] .

== API

[source,java]
.ApplicationFeatureViewModel.java
----
class ApplicationFeatureViewModel {
  ApplicationFeatureViewModel()
  ApplicationFeatureViewModel(ApplicationFeatureId featureId)
  ApplicationFeatureViewModel(String encodedMemento)
  ApplicationFeatureViewModel newViewModel(ApplicationFeatureId featureId, ApplicationFeatureRepository applicationFeatureRepository, FactoryService factoryService)
  String title()     // <.>
  String iconName()
  String viewModelMemento()
  ApplicationFeature getFeature()
  String getFullyQualifiedName()
  ApplicationFeatureSort getSort()
  String getNamespaceName()
  String getTypeSimpleName()
  boolean hideTypeSimpleName()
  String getMemberName()     // <.>
  boolean hideMemberName()
  ApplicationFeatureViewModel getParent()
  ApplicationFeatureViewModel getParentNamespace()     // <.>
  boolean equals(Object obj)
  int hashCode()
  String toString()
  Function<ApplicationFeatureId, T> factory(ApplicationFeatureRepository featureRepository, FactoryService factory, Class<T> viewModelType)
}
----

<.> xref:#title_[title()]
+
--
having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Causeway 1.6.0
--
<.> xref:#getMemberName_[getMemberName()]
+
--
For packages and class names, will be null.
--
<.> xref:#getParentNamespace_[getParentNamespace()]
+
--
The parent package feature of this class or package.
--

== Members

[#title_]
=== title()

having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Causeway 1.6.0

[#getMemberName_]
=== getMemberName()

For packages and class names, will be null.

[#getParentNamespace_]
=== getParentNamespace()

The parent package feature of this class or package.
