com.google.appinventor.shared.rpc.component.Component.java Source code

Java tutorial

Introduction

Here is the source code for com.google.appinventor.shared.rpc.component.Component.java

Source

// -*- mode: java; c-basic-offset: 2; -*-
// Copyright 2015 MIT, All rights reserved
// Released under the Apache License, Version 2.0
// http://www.apache.org/licenses/LICENSE-2.0

package com.google.appinventor.shared.rpc.component;

import com.google.gwt.user.client.rpc.IsSerializable;

import com.google.common.primitives.Longs;

/**
 * Component stored in the server
 */
public class Component implements IsSerializable {
    private long id;
    private String authorId;
    private String fullyQualifiedName;
    private String name;
    private long version;

    private static final String DELIM = "#DELIM#";

    public Component() {
        // no-op
    }

    public Component(long id, String authorId, String fullyQualifiedName, long version) {
        set(id, authorId, fullyQualifiedName, version);
    }

    public long getId() {
        return id;
    }

    public String getAuthorId() {
        return authorId;
    }

    public String getFullyQualifiedName() {
        return fullyQualifiedName;
    }

    public String getName() {
        return name;
    }

    public long getVersion() {
        return version;
    }

    public void set(long id, String authorId, String fullyQualifiedName, long version) {
        this.id = id;
        this.authorId = authorId;
        this.fullyQualifiedName = fullyQualifiedName;
        this.name = fullyQualifiedName.substring(fullyQualifiedName.lastIndexOf(".") + 1);
        this.version = version;
    }

    public static Component valueOf(String text) {
        String[] parts = text.split(DELIM);
        if (parts.length != 4) {
            throw new IllegalArgumentException("text should have 4 parts.");
        }

        Long id = Longs.tryParse(parts[0]);
        String authorId = parts[1];
        String fullyQualifiedName = parts[2];
        Long version = Longs.tryParse(parts[3]);
        if (id == null) {
            throw new IllegalArgumentException("id is not parsable.");
        }
        if (version == null) {
            throw new IllegalArgumentException("version is not parsable.");
        }

        return new Component(id, authorId, fullyQualifiedName, version);
    }

    @Override
    public String toString() {
        return getId() + DELIM + getAuthorId() + DELIM + getFullyQualifiedName() + DELIM + getVersion();
    }
}