All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadleafcommerce.common.presentation.AdminPresentationMapField Maven / Gradle / Ivy

/*
 * #%L
 * BroadleafCommerce Common Libraries
 * %%
 * Copyright (C) 2009 - 2013 Broadleaf Commerce
 * %%
 * 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.
 * #L%
 */
package org.broadleafcommerce.common.presentation;

import org.broadleafcommerce.common.presentation.client.CustomFieldSearchableTypes;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * This annotation is used to describe a member of a Map structure that should be
 * displayed as a regular field in the admin tool.
 *
 * @author Jeff Fischer
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface AdminPresentationMapField {

    /**
     * 

Represents the field name for this field.

* * @return the name for this field */ String fieldName(); /** *

Represents the metadata for this field. The AdminPresentation properties will be used * by the system to determine how this field should be treated in the admin tool (e.g. date fields get * a date picker in the UI)

* * @return the descriptive metadata for this field */ AdminPresentation fieldPresentation(); /** *

Optional - if the Map structure is using generics, then the system can usually infer the concrete * type for the Map value. However, if not using generics for the Map, or if the value cannot be clearly * inferred, you can explicitly set the Map structure value type here. Map fields can only understand * maps whose values are basic types (String, Long, Date, etc...). Complex types require additional * support. Support is provided out-of-the-box for complex types ValueAssignable, * Searchable and SimpleRule.

* * @return the concrete type for the Map structure value */ Class targetClass() default Void.class; /** *

Optional - if the map field value contains searchable information and should be included in Broadleaf * search engine indexing and searching. If set, the map value class must implement the Searchable interface. * Note, support for indexing and searching this field must be explicitly added to the Broadleaf search service * as well.

* * @return Whether or not this field is searchable with the Broadleaf search engine */ CustomFieldSearchableTypes searchable() default CustomFieldSearchableTypes.NOT_SPECIFIED; /** *

Optional - if the value is not primitive and contains a bi-directional reference back to the entity containing * this map structure, you can declare the field name in the value class for this reference. Note, if the map * uses the JPA mappedBy property, the system will try to infer the manyToField value so you don't have to set * it here.

* * @return the parent entity referring field name */ String manyToField() default ""; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy