kenglxn / QRGen

a simple QRCode generation api for java built on top ZXING
http://glxn.net/2012/03/10/qrgen-a-small-wrapper-on-top-of-zxing-for-generating-qrcodes-in-java
1.49k stars 299 forks source link

New Scheme Added. #119

Closed Tannyll closed 1 year ago

Tannyll commented 5 years ago

`package emirci.com.qread.schema;

import java.util.Map;

import static emirci.com.qread.schema.SchemeUtil.getParameters;

public class MatMsg extends Schema {

private static final String BEGIN_MATMSG = "MATMSG:";
private static final String TO = "TO";
private static final String SUB = "SUB";
private static final String BODY = "BODY";

private String to;
private String sub;
private String body;

public MatMsg() {
    super();
}

public String getTo() {
    return to;
}

public void setTo(String to) {
    this.to = to;
}

public String getSub() {
    return sub;
}

public void setSub(String sub) {
    this.sub = sub;
}

public String getBody() {
    return body;
}

public void setBody(String body) {
    this.body = body;
}

@Override
public Schema parseSchema(String code) {
    if (code == null || !code.startsWith(BEGIN_MATMSG)) {
        throw new IllegalArgumentException("this is not a valid MATMSG code: " + code);
    }
    Map<String, String> parameters = getParameters(code);
    if (parameters.containsKey(TO)) {
        setTo(parameters.get(TO));
    }
    if (parameters.containsKey(SUB)) {
        setSub(parameters.get(SUB));
    }
    if (parameters.containsKey(BODY)) {
        setBody(parameters.get(BODY));
    }

    return this;
}

@Override
public String generateString() {
    StringBuilder sb = new StringBuilder();
    sb.append(BEGIN_MATMSG);

    if (to != null) {
        sb.append(TO).append(":").append(to).append(";");
    }
    if (sub != null) {
        sb.append(SUB).append(":").append(sub).append(";");
    }
    if (body != null) {
        sb.append(BODY).append(":").append(body).append(";");
    }
    sb.append(";");
    return sb.toString();
}

@Override
public String toString() {
    return generateString();
}

public static MatMsg parse(final String MatMsgCode) {
    MatMsg matMsg = new MatMsg();
    matMsg.parseSchema(MatMsgCode);
    return matMsg;
}

}`