Up until now I've just been using the Parse SDK to query objects directly and then retrieve their properties, i.e. postObject.getString("bodyText")
, postObject.getList("likedBy")
, etc.
Let's take a class with the following Parse columns (via the Dashboard):
I know how to retrieve Strings, Ints, and ParseFiles, but what about Pointers, Dates, Arrays and Booleans? What do variable declarations and mutators/accessors look like in those cases?
@ParseClassName("Post")
public class Post extends ParseObject {
public Post() {
}
private String text;
private ParseFile image;
private int rating;
public String getText() {
return getString("text");
}
public void setText(String text) {
this.text = text;
}
public ParseFile getImage() {
return getParseFile("image");
}
public void setImage(ParseFile image) {
this.image = image;
}
public Int getRating() {
return getInt("rating");
}
public void setRating(Int rating) {
this.rating = rating;
}
}
Comments are not made for answer, so I'll post it here with a proper example for you to understand. Here's a simple class.
public class A {
private int number;
public A(int value){
this.number = value;
}
public void setNumber(int value){
this.number = value;
}
public int getNumber(){
return this.number();
}
}
And here s a more complete class.
public class B{
private A pointerToA;
private boolean isAnExample;
private List<String> myList;
private Date myDate;
It is completely right to have accessors for each of this field. And their synxtaxes is no different from "classic" accessors such as getNumber()
in class B.
public A getPointerToA(){
return this.pointerToA;
}
public List<String> getMyList(){
return this.myList;
}
public boolean isAnExample(){
return this.isAnExample;
}
public Date getMyDate(){
return this.myDate;
}
You can also have "classic" setters for each of these fields, depending on what you're tryign to do.
public setIsAnExample(boolean bool){
this.isAnExample = bool;
}
...