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

net.glxn.qrgen.core.scheme.Bookmark Maven / Gradle / Ivy

There is a newer version: 3.3.18-20230117
Show newest version
package net.glxn.qrgen.core.scheme;

import static net.glxn.qrgen.core.scheme.SchemeUtil.getParameters;
import java.util.Map;

/**
 * Bookmark encoding
 */
public class Bookmark extends Schema {

  private static final String BEGIN_BOOKMARK = "MEBKM";
  private static final String URL = "URL";
  private static final String TITLE = "TITLE";
  private static final String LINE_SEPARATOR = ";";
  private String url;
  private String titel;

  public Bookmark() {
    super();
  }

  public String getUrl() {
    return url;
  }

  public void setUrl(String url) {
    this.url = url;
  }

  public String getTitel() {
    return titel;
  }

  public void setTitel(String titel) {
    this.titel = titel;
  }

  @Override
  public Schema parseSchema(String code) {
    if (code == null || !code.startsWith(BEGIN_BOOKMARK)) {
      throw new IllegalArgumentException("this is not a valid Bookmark code: " + code);
    }
    Map parameters =
        getParameters(code.replaceFirst(BEGIN_BOOKMARK + ":", ""), LINE_SEPARATOR, ":");
    if (parameters.containsKey(URL)) {
      setUrl(parameters.get(URL));
    }
    if (parameters.containsKey(TITLE)) {
      setTitel(parameters.get(TITLE));
    }
    return this;
  }

  @Override
  public String generateString() {
    StringBuilder sb = new StringBuilder();
    sb.append(BEGIN_BOOKMARK).append(":");
    if (url != null) {
      sb.append(URL).append(":").append(url).append(LINE_SEPARATOR);
    }
    if (titel != null) {
      sb.append(TITLE).append(":").append(titel).append(LINE_SEPARATOR);
    }
    sb.append(LINE_SEPARATOR);
    return sb.toString();
  }

  /**
   * Returns the textual representation of this bookmark of the form
   * 

* MEBKM:URL:google.com;TITLE:Google; *

*/ @Override public String toString() { return generateString(); } public static Bookmark parse(final String code) { Bookmark bookmark = new Bookmark(); bookmark.parseSchema(code); return bookmark; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy