/* * #%L * BroadleafCommerce Framework * %% * 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.cms.page.service; import org.broadleafcommerce.cms.field.domain.FieldDefinition; import org.broadleafcommerce.cms.page.domain.Page; import org.broadleafcommerce.common.extension.ExtensionHandler; import org.broadleafcommerce.common.extension.ExtensionResultHolder; import org.broadleafcommerce.common.extension.ExtensionResultStatusType; import org.broadleafcommerce.common.page.dto.PageDTO; /** * Extension handler for {@link PageService} * * @author Andre Azzolini (apazzolini) */ public interface PageServiceExtensionHandler extends ExtensionHandler { public static final String IS_KEY = "IS_KEY"; /** * If this method returns something other than {@link ExtensionResultStatusType#NOT_HANDLED}, the result variable * in the {@link ExtensionResultHolder} will hold the associated {@link FieldDefinition} for the given {@link Page} * and field key. * * @param erh * @param page * @param fieldKey * @return */ ExtensionResultStatusType getFieldDefinition(ExtensionResultHolder<FieldDefinition> erh, Page page, String fieldKey); /** * This method provides the opportunity to modify the page fields associated with the pageDto * {@link ExtensionResultHolder}. Modifying classes should clone the DTO and adjust fields. * * @param erh * @param pageDto * @param page * @return */ ExtensionResultStatusType overridePageDto(ExtensionResultHolder<PageDTO> erh, PageDTO pageDto, Page page); }