// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public static class ClientStatus {
// 	private final Integer vote;
// 	private final Boolean favorite;
// 	private final Boolean observed;
// 	private final List<Integer> associatedLists;
// 		
// 	ClientStatus(String vote, Boolean favorite, Boolean observed, Integer[] associatedLists) {
// 		if (vote.equals("dig")) {
// 			this.vote = 1;
// 		} else if (vote.equals("bury")) {
// 			this.vote = -1;
// 		} else {
// 			this.vote = 0;
// 		}
// 			
// 		this.favorite = favorite;
// 		this.observed = observed;
// 		this.associatedLists = Arrays.asList(associatedLists);
// 	}
// 
// 	public Integer getVote() {
// 		return vote;
// 	}
// 
// 	public Boolean isFavorite() {
// 		return favorite;
// 	}
// 
// 	public Boolean isObserved() {
// 		return observed;
// 	}
// 
// 	public List<Integer> getAssociatedLists() {
// 		return associatedLists;
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public enum Status {
// 	PROMOTED, UPCOMING, OUTDATED, DUPLICATE, REJECTED
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public enum Type {
// 	NEWS, PICTURE, VIDEO
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/json/DateDeserializer.java
// public class DateDeserializer extends JsonDeserializer<Date> {
// 	private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
// 	
// 	@Override
// 	public Date deserialize(JsonParser jp, DeserializationContext ctxt) {
// 		try {
// 			return format.parse(jp.getText());
// 		} catch (ParseException pe) {
// 			throw new RuntimeException(pe);
// 		} catch (IOException ioe) {
// 			throw new RuntimeException(ioe);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/json/TagsDeserializer.java
// public class TagsDeserializer extends JsonDeserializer<List<String>> {
// 	@Override
// 	public List<String> deserialize(JsonParser jp, DeserializationContext ctxt) {
// 		try {
// 			return Arrays.asList(jp.getText().split(" "));
// 		}catch (IOException e) {
// 			throw new RuntimeException(e);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/util/DeserializationUtils.java
// public class DeserializationUtils {
// 	private static Map<String, String> authorFields = new HashMap<String, String>();
// 	
// 	static {
// 		authorFields.put("", "username");
// 		authorFields.put("_avatar", "defaultAvatar");
// 		authorFields.put("_avatar_lo", "lowQualityAvatar");
// 		authorFields.put("_avatar_med", "mediumQualityAvatar");
// 		authorFields.put("_avatar_big", "highQualityAvatar");
// 		authorFields.put("_group", "group");
// 		authorFields.put("_sex", "gender");
// 	}
// 	
// 	public static Author readAuthor(Object o) {
// 		return readAuthor(o, "author");
// 	}
// 	
// 	public static Author readAuthor(Object object, String fieldNamePrefix) {
// 		try {
// 			Author author = new Author();
// 			
// 			for (String fieldName : authorFields.keySet()) {
// 				Field objectField = object.getClass().getDeclaredField(fieldNamePrefix + fieldName);
// 				Field authorField = author.getClass().getDeclaredField(authorFields.get(fieldName));
// 				
// 				objectField.setAccessible(true);
// 				authorField.setAccessible(true);
// 				
// 				authorField.set(author, objectField.get(object));
// 			}
// 			
// 			return author;
// 		} catch (NoSuchFieldException nsfe) {
// 			throw new RuntimeException(nsfe);
// 		} catch (IllegalArgumentException iae) {
// 			throw new RuntimeException(iae);
// 		} catch (IllegalAccessException iae) {
// 			throw new RuntimeException(iae);
// 		}
// 	}
// }


import java.net.URL;
import java.util.Date;
import java.util.List;
import com.crozin.wykop.sdk.domain.Link.ClientStatus;
import com.crozin.wykop.sdk.domain.Link.Status;
import com.crozin.wykop.sdk.domain.Link.Type;
import com.crozin.wykop.sdk.json.DateDeserializer;
import com.crozin.wykop.sdk.json.TagsDeserializer;
import com.crozin.wykop.sdk.util.DeserializationUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
	public Integer getCommentsCount() {
		return commentsCount;
	}
	
	public Integer getReportsCount() {
		return reportsCount;
	}
	
	public Integer getRelatedLinksCount() {
		return relatedLinksCount;
	}
	
	public Boolean isAdultOnly() {
		return adultOnly;
	}
	
	public Boolean isVotable() {
		return votable;
	}
	
	public Boolean hasOwnContent() {
		return hasOwnContent;
	}
	
	public String getOwnContent() {
		return ownContent;
	}
	
	public ClientStatus getClientStatus() {
		if (clientStatus == null) {
// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public static class ClientStatus {
// 	private final Integer vote;
// 	private final Boolean favorite;
// 	private final Boolean observed;
// 	private final List<Integer> associatedLists;
// 		
// 	ClientStatus(String vote, Boolean favorite, Boolean observed, Integer[] associatedLists) {
// 		if (vote.equals("dig")) {
// 			this.vote = 1;
// 		} else if (vote.equals("bury")) {
// 			this.vote = -1;
// 		} else {
// 			this.vote = 0;
// 		}
// 			
// 		this.favorite = favorite;
// 		this.observed = observed;
// 		this.associatedLists = Arrays.asList(associatedLists);
// 	}
// 
// 	public Integer getVote() {
// 		return vote;
// 	}
// 
// 	public Boolean isFavorite() {
// 		return favorite;
// 	}
// 
// 	public Boolean isObserved() {
// 		return observed;
// 	}
// 
// 	public List<Integer> getAssociatedLists() {
// 		return associatedLists;
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public enum Status {
// 	PROMOTED, UPCOMING, OUTDATED, DUPLICATE, REJECTED
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/domain/Link.java
// public enum Type {
// 	NEWS, PICTURE, VIDEO
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/json/DateDeserializer.java
// public class DateDeserializer extends JsonDeserializer<Date> {
// 	private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
// 	
// 	@Override
// 	public Date deserialize(JsonParser jp, DeserializationContext ctxt) {
// 		try {
// 			return format.parse(jp.getText());
// 		} catch (ParseException pe) {
// 			throw new RuntimeException(pe);
// 		} catch (IOException ioe) {
// 			throw new RuntimeException(ioe);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/json/TagsDeserializer.java
// public class TagsDeserializer extends JsonDeserializer<List<String>> {
// 	@Override
// 	public List<String> deserialize(JsonParser jp, DeserializationContext ctxt) {
// 		try {
// 			return Arrays.asList(jp.getText().split(" "));
// 		}catch (IOException e) {
// 			throw new RuntimeException(e);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/util/DeserializationUtils.java
// public class DeserializationUtils {
// 	private static Map<String, String> authorFields = new HashMap<String, String>();
// 	
// 	static {
// 		authorFields.put("", "username");
// 		authorFields.put("_avatar", "defaultAvatar");
// 		authorFields.put("_avatar_lo", "lowQualityAvatar");
// 		authorFields.put("_avatar_med", "mediumQualityAvatar");
// 		authorFields.put("_avatar_big", "highQualityAvatar");
// 		authorFields.put("_group", "group");
// 		authorFields.put("_sex", "gender");
// 	}
// 	
// 	public static Author readAuthor(Object o) {
// 		return readAuthor(o, "author");
// 	}
// 	
// 	public static Author readAuthor(Object object, String fieldNamePrefix) {
// 		try {
// 			Author author = new Author();
// 			
// 			for (String fieldName : authorFields.keySet()) {
// 				Field objectField = object.getClass().getDeclaredField(fieldNamePrefix + fieldName);
// 				Field authorField = author.getClass().getDeclaredField(authorFields.get(fieldName));
// 				
// 				objectField.setAccessible(true);
// 				authorField.setAccessible(true);
// 				
// 				authorField.set(author, objectField.get(object));
// 			}
// 			
// 			return author;
// 		} catch (NoSuchFieldException nsfe) {
// 			throw new RuntimeException(nsfe);
// 		} catch (IllegalArgumentException iae) {
// 			throw new RuntimeException(iae);
// 		} catch (IllegalAccessException iae) {
// 			throw new RuntimeException(iae);
// 		}
// 	}
// }


// Path: src/main/java/com/crozin/wykop/sdk/domain/MyWykopLink.java
import java.net.URL;
import java.util.Date;
import java.util.List;
import com.crozin.wykop.sdk.domain.Link.ClientStatus;
import com.crozin.wykop.sdk.domain.Link.Status;
import com.crozin.wykop.sdk.domain.Link.Type;
import com.crozin.wykop.sdk.json.DateDeserializer;
import com.crozin.wykop.sdk.json.TagsDeserializer;
import com.crozin.wykop.sdk.util.DeserializationUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

	public Integer getCommentsCount() {
		return commentsCount;
	}
	
	public Integer getReportsCount() {
		return reportsCount;
	}
	
	public Integer getRelatedLinksCount() {
		return relatedLinksCount;
	}
	
	public Boolean isAdultOnly() {
		return adultOnly;
	}
	
	public Boolean isVotable() {
		return votable;
	}
	
	public Boolean hasOwnContent() {
		return hasOwnContent;
	}
	
	public String getOwnContent() {
		return ownContent;
	}
	
	public ClientStatus getClientStatus() {
		if (clientStatus == null) {
			clientStatus = new ClientStatus(user_vote, user_favorite, user_observe, user_lists);