Java tutorial
/** * Copyright (C) 2014 Cohesive Integrations, LLC (info@cohesiveintegrations.com) * * 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. */ package net.di2e.ecdr.search.transform.atom; import java.io.Serializable; import java.util.List; import java.util.Map; import javax.activation.MimeType; import net.di2e.ecdr.api.security.SecurityConfiguration; import net.di2e.ecdr.commons.CDRMetacard; import net.di2e.ecdr.commons.constants.SearchConstants; import net.di2e.ecdr.search.transform.atom.constants.AtomResponseConstants; import org.apache.abdera.model.Entry; import org.apache.abdera.model.Link; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ddf.action.Action; import ddf.action.ActionProvider; public class AtomOGCTransformer extends AtomTransformer { private static final Logger LOGGER = LoggerFactory.getLogger(AtomTransformerWithContent.class); public AtomOGCTransformer(ActionProvider viewMetacardProvider, ActionProvider metadataProvider, ActionProvider resourceProvider, ActionProvider thumbnailProvider, MimeType thumbnailMime, MimeType viewMime, List<SecurityConfiguration> securityConfig) { super(viewMetacardProvider, metadataProvider, resourceProvider, thumbnailProvider, thumbnailMime, viewMime, securityConfig); LOGGER.debug( "Created new AtomOGCTransformer for returning metadata with atom entry content element populated"); } protected void addLinksToEntry(Entry entry, CDRMetacard metacard, String format, Map<String, Serializable> properties) { if (metacard.hasThumbnail()) { if (getThumbnailActionProvider() != null) { Action action = getThumbnailActionProvider().getAction(metacard); if (action != null && action.getUrl() != null) { entry.addLink(action.getUrl().toString(), SearchConstants.LINK_REL_ICON, getThumbnailMimeType().getBaseType(), action.getTitle(), null, metacard.getThumbnailLength()); } } } if (getResourceActionProvider() != null && metacard.hasResource()) { Action action = getResourceActionProvider().getAction(metacard); if (action != null && action.getUrl() != null) { entry.addLink(action.getUrl().toString(), Link.REL_ENCLOSURE, metacard.getResourceMIMETypeString(), action.getTitle(), null, metacard.getResourceSizeLong()); } // If there is no explicit resource then the metadata serves as // the product/resource so include a link to it here } else if (getMetadataActionProvider() != null) { Action action = getMetadataActionProvider().getAction(metacard); if (action != null && action.getUrl() != null) { entry.addLink(action.getUrl().toString(), Link.REL_ENCLOSURE, "text/xml", "View Product", null, -1); } } if (getViewMetacardActionProvider() != null) { Action action = getViewMetacardActionProvider().getAction(metacard); if (action != null && action.getUrl() != null) { String transformFormat = (String) properties.get(SearchConstants.METACARD_TRANSFORMER_NAME); if (StringUtils.isBlank(transformFormat)) { transformFormat = StringUtils.defaultIfBlank(format, CDR_ATOM_TRANSFORMER_ID); } entry.addLink(action.getUrl().toString() + "?transform=" + transformFormat, Link.REL_SELF, AtomResponseConstants.ATOM_MIME_TYPE, "View Atom Entry", null, -1); entry.addLink(action.getUrl().toString(), Link.REL_ALTERNATE, "text/xml", action.getTitle(), null, -1); } } } }