Package org.apache.abdera.parser.stax

Source Code of org.apache.abdera.parser.stax.FOMLink

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  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.  For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.abdera.parser.stax;

import java.util.HashMap;
import java.util.Map;

import javax.activation.MimeType;
import javax.activation.MimeTypeParseException;
import javax.xml.namespace.QName;

import org.apache.abdera.model.Link;
import org.apache.abdera.util.Constants;
import org.apache.abdera.util.URIHelper;
import org.apache.abdera.util.iri.IRI;
import org.apache.abdera.util.iri.IRISyntaxException;
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMXMLParserWrapper;

public class FOMLink
  extends FOMExtensibleElement
  implements Link {

  private static final long serialVersionUID = 2239772197929910635L;

  public FOMLink() {
    super(Constants.LINK);
  }
 
  public FOMLink(
    String href)
      throws IRISyntaxException {
    this();
    setHref(href);
  }
 
  public FOMLink(
    String href,
    String rel)
      throws IRISyntaxException {
    this();
    setHref(href);
    setRel(rel);
  }
 
  protected FOMLink(
    String name,
    OMNamespace namespace,
    OMContainer parent,
    OMFactory factory)
      throws OMException {
    super(name, namespace, parent, factory);
  }
 
  protected FOMLink(
    OMContainer parent,
    OMFactory factory)
      throws OMException {
    super(LINK, parent, factory);
  }
  protected FOMLink(
    QName qname,
    OMContainer parent,
    OMFactory factory)
      throws OMException {
    super(qname, parent, factory);
  }
  
  protected FOMLink(
    OMContainer parent,
    OMFactory factory,
    OMXMLParserWrapper builder)
      throws OMException {
    super(LINK, parent, factory, builder);
  }
 
  protected FOMLink(
    QName qname,
    OMContainer parent,
    OMFactory factory,
    OMXMLParserWrapper builder)
      throws OMException {
    super(qname, parent, factory, builder);
  }
 
  public IRI getHref() throws IRISyntaxException {
    return _getUriValue(getAttributeValue(HREF));
  }

  public IRI getResolvedHref() throws IRISyntaxException {
    return _resolve(getResolvedBaseUri(), getHref());
  }
 
  public void setHref(String href) throws IRISyntaxException {
    if (href != null)
      setAttributeValue(HREF, (new IRI(href)).toString());
    else
      removeAttribute(HREF);
  }
 
  public String getRel() {
    return getAttributeValue(REL);
  }

  public void setRel(String rel) {
    setAttributeValue(REL, rel);
  }

  public MimeType getMimeType() throws MimeTypeParseException {
    String type = getAttributeValue(TYPE);
    return (type != null) ? new MimeType(type) : null;
  }
 
  public void setMimeType(MimeType type) {
    setAttributeValue(TYPE, (type != null) ? type.toString() : null);
  }

  public void setMimeType(String type) throws MimeTypeParseException {
    if (type != null)
      setAttributeValue(TYPE, (new MimeType(type)).toString());
    else
      removeAttribute(TYPE);
  }

  public String getHrefLang() {
    return getAttributeValue(HREFLANG);
  }

  public void setHrefLang(String lang) {
    if (lang != null)
      setAttributeValue(HREFLANG, lang);
    else
      removeAttribute(HREFLANG);
  }

  public String getTitle() {
    return getAttributeValue(ATITLE);
  }

  public void setTitle(String title) {
    if (title != null)
      setAttributeValue(ATITLE, title);
    else
      removeAttribute(ATITLE);
  }

  public long getLength() {
    String l = getAttributeValue(LENGTH);
    return (l != null) ? Long.valueOf(l) : -1;
  }

  public void setLength(long length) {
    if (length > -1)
      setAttributeValue(LENGTH, (length >= 0) ? String.valueOf(length) : "0");
    else
      removeAttribute(LENGTH);
  }

 
  private static final Map<String,String> REL_EQUIVS = new HashMap<String,String>();
  static {
    REL_EQUIVS.put(REL_ALTERNATE_IANA, REL_ALTERNATE);
    REL_EQUIVS.put(REL_CURRENT_IANA, REL_CURRENT);
    REL_EQUIVS.put(REL_ENCLOSURE_IANA, REL_ENCLOSURE);
    REL_EQUIVS.put(REL_FIRST_IANA, REL_FIRST);
    REL_EQUIVS.put(REL_LAST_IANA, REL_LAST);
    REL_EQUIVS.put(REL_NEXT_IANA, REL_NEXT);
    REL_EQUIVS.put(REL_PAYMENT_IANA, REL_PAYMENT);
    REL_EQUIVS.put(REL_PREVIOUS_IANA, REL_PREVIOUS);
    REL_EQUIVS.put(REL_RELATED_IANA, REL_RELATED);
    REL_EQUIVS.put(REL_SELF_IANA, REL_SELF);
    REL_EQUIVS.put(REL_VIA_IANA, REL_VIA);
    REL_EQUIVS.put(REL_REPLIES_IANA, REL_REPLIES);
    REL_EQUIVS.put(REL_LICENSE_IANA, REL_LICENSE);
    REL_EQUIVS.put(REL_EDIT_IANA, REL_EDIT);
    REL_EQUIVS.put(REL_EDIT_MEDIA_IANA, REL_EDIT_MEDIA);
  }
  public static final String getRelEquiv(String val) {
    try {
      val = URIHelper.normalize(val);
    } catch (Exception e) {}
    String rel = REL_EQUIVS.get(val);
    return (rel != null) ? rel : val;
  }

  public String getValue() {
    return getText();
  }

  public void setValue(String value) {
    if (value != null)
      setText(value);
    else
      _removeAllChildren();
  }

}
TOP

Related Classes of org.apache.abdera.parser.stax.FOMLink

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.