001package com.plivo.api.models.base;
002
003import com.fasterxml.jackson.annotation.JsonIgnore;
004import com.fasterxml.jackson.core.JsonProcessingException;
005import com.plivo.api.Plivo;
006import com.plivo.api.PlivoClient;
007import com.plivo.api.exceptions.PlivoValidationException;
008
009//@JsonIgnoreProperties(value = {"api_id"})
010public abstract class BaseResource {
011  private String apiId;
012
013  public String getApiId() {
014    return apiId;
015  }
016
017  public abstract String getId() throws PlivoValidationException;
018
019  protected PlivoClient plivoClient = Plivo.getClient();
020
021  @JsonIgnore
022  public PlivoClient getPlivoClient() {
023    return plivoClient;
024  }
025
026  public void setPlivoClient(PlivoClient plivoClient) {
027    this.plivoClient = plivoClient;
028  }
029
030  @Override
031  public String toString() {
032    try {
033      return getClass().getCanonicalName() + ": " + plivoClient.getObjectMapper()
034        .writeValueAsString(this);
035    } catch (JsonProcessingException e) {
036      e.printStackTrace();
037      return null;
038    }
039  }
040}