// Path: src/main/java/com/crozin/wykop/sdk/AuthenticatedSession.java
// public class AuthenticatedSession extends Session {
// 	AuthenticatedSession(Application app, String authenticationKey) {
// 		super(app);
// 		
// 		apiParameters.put("userkey", authenticationKey);
// 	}
// 	
// 	public ClientService getClientService() {
// 		return new ClientService(this);
// 	}
// 	
// 	public CommentService getCommentService(Comment comment) {
// 		return new CommentService(this, comment.getId());
// 	}
// 	
// 	public CommentService getCommentService(Integer id) {
// 		return new CommentService(this, id);
// 	}
// 	
// 	public LinkService getLinkService(Link link) {
// 		return new LinkService(this, link.getId());
// 	}
// 	
// 	public LinkService getLinkService(Integer id) {
// 		return new LinkService(this, id);
// 	}
// 	
// 	public MicroblogService getMicroblogService() {
// 		return new MicroblogService(this);
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/Command.java
// public class Command {
// 	private final String resource;
// 	private final String method;
// 	
// 	private List<String> arguments = new LinkedList<String>();
// 	private Map<String, String> parameters = new HashMap<String, String>();
// 	private Map<String, String> postParameters = new TreeMap<String, String>();
// 	
// 	private Boolean clear = false;
// 
// 	public Command(String resource, String method) {
// 		this.resource = resource;
// 		this.method = method;
// 	}
// 
// 	public Command(String resource, String method, Object argument) {
// 		this(resource, method);
// 		this.addArgument(argument);
// 	}
// 
// 	public Command(String resource, String method, String[] arguments) {
// 		this(resource, method);
// 		this.arguments.addAll(Arrays.asList(arguments));
// 	}
// 
// 	public String getResource() {
// 		return resource;
// 	}
// 
// 	public String getMethod() {
// 		return method;
// 	}
// 
// 	public List<String> getArguments() {
// 		return arguments;
// 	}
// 	
// 	public void setArguments(List<String> arguments) {
// 		this.arguments = arguments;
// 	}
// 
// 	public void addArgument(Object argument) {
// 		arguments.add(argument.toString());
// 	}
// 	
// 	public boolean hasArguments() {
// 		return arguments.size() > 0;
// 	}
// 	
// 	public Map<String, String> getParameters() {
// 		return parameters;
// 	}
// 
// 	public void setParameters(Map<String, String> parameters) {
// 		this.parameters = parameters;
// 	}
// 	
// 	public void addParameter(String key, Object value) {
// 		parameters.put(key, value.toString());
// 	}
// 	
// 	public boolean hasParameters() {
// 		return parameters.size() > 0;
// 	}
// 	
// 	public Map<String, String> getPostParameters() {
// 		return postParameters;
// 	}
// 
// 	public void setPostParameters(Map<String, String> postParameters) {
// 		this.postParameters = postParameters;
// 	}
// 	
// 	public void addPostParameter(String key, Object value) {
// 		postParameters.put(key, value.toString());
// 	}
// 	
// 	public boolean hasPostParameters() {
// 		return postParameters.size() > 0;
// 	}
// 
// 	public Boolean getClear() {
// 		return clear;
// 	}
// 
// 	public void setClear(Boolean clear) {
// 		this.clear = clear;
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/Credential.java
// public enum Credential {
// 	AUTHENTICATE, VOTE, MICROBLOG, COMMENTS, LINKS, PROFILE
// }


import com.crozin.wykop.sdk.AuthenticatedSession;
import com.crozin.wykop.sdk.Command;
import com.crozin.wykop.sdk.Credential;
package com.crozin.wykop.sdk.service;


public class MicroblogService extends AbstractService {
	public MicroblogService(AuthenticatedSession session) {
		super(session);
	}

	public Integer addEntry(String content) {
		checkCredentials(Credential.MICROBLOG);
		
		Command cmd = new Command("entries", "add");
		cmd.addPostParameter("body", content);

		return Integer.valueOf(session.getMapResult(cmd).get("id"));
	}
	
// Path: src/main/java/com/crozin/wykop/sdk/AuthenticatedSession.java
// public class AuthenticatedSession extends Session {
// 	AuthenticatedSession(Application app, String authenticationKey) {
// 		super(app);
// 		
// 		apiParameters.put("userkey", authenticationKey);
// 	}
// 	
// 	public ClientService getClientService() {
// 		return new ClientService(this);
// 	}
// 	
// 	public CommentService getCommentService(Comment comment) {
// 		return new CommentService(this, comment.getId());
// 	}
// 	
// 	public CommentService getCommentService(Integer id) {
// 		return new CommentService(this, id);
// 	}
// 	
// 	public LinkService getLinkService(Link link) {
// 		return new LinkService(this, link.getId());
// 	}
// 	
// 	public LinkService getLinkService(Integer id) {
// 		return new LinkService(this, id);
// 	}
// 	
// 	public MicroblogService getMicroblogService() {
// 		return new MicroblogService(this);
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/Command.java
// public class Command {
// 	private final String resource;
// 	private final String method;
// 	
// 	private List<String> arguments = new LinkedList<String>();
// 	private Map<String, String> parameters = new HashMap<String, String>();
// 	private Map<String, String> postParameters = new TreeMap<String, String>();
// 	
// 	private Boolean clear = false;
// 
// 	public Command(String resource, String method) {
// 		this.resource = resource;
// 		this.method = method;
// 	}
// 
// 	public Command(String resource, String method, Object argument) {
// 		this(resource, method);
// 		this.addArgument(argument);
// 	}
// 
// 	public Command(String resource, String method, String[] arguments) {
// 		this(resource, method);
// 		this.arguments.addAll(Arrays.asList(arguments));
// 	}
// 
// 	public String getResource() {
// 		return resource;
// 	}
// 
// 	public String getMethod() {
// 		return method;
// 	}
// 
// 	public List<String> getArguments() {
// 		return arguments;
// 	}
// 	
// 	public void setArguments(List<String> arguments) {
// 		this.arguments = arguments;
// 	}
// 
// 	public void addArgument(Object argument) {
// 		arguments.add(argument.toString());
// 	}
// 	
// 	public boolean hasArguments() {
// 		return arguments.size() > 0;
// 	}
// 	
// 	public Map<String, String> getParameters() {
// 		return parameters;
// 	}
// 
// 	public void setParameters(Map<String, String> parameters) {
// 		this.parameters = parameters;
// 	}
// 	
// 	public void addParameter(String key, Object value) {
// 		parameters.put(key, value.toString());
// 	}
// 	
// 	public boolean hasParameters() {
// 		return parameters.size() > 0;
// 	}
// 	
// 	public Map<String, String> getPostParameters() {
// 		return postParameters;
// 	}
// 
// 	public void setPostParameters(Map<String, String> postParameters) {
// 		this.postParameters = postParameters;
// 	}
// 	
// 	public void addPostParameter(String key, Object value) {
// 		postParameters.put(key, value.toString());
// 	}
// 	
// 	public boolean hasPostParameters() {
// 		return postParameters.size() > 0;
// 	}
// 
// 	public Boolean getClear() {
// 		return clear;
// 	}
// 
// 	public void setClear(Boolean clear) {
// 		this.clear = clear;
// 	}
// }
// 
// Path: src/main/java/com/crozin/wykop/sdk/Credential.java
// public enum Credential {
// 	AUTHENTICATE, VOTE, MICROBLOG, COMMENTS, LINKS, PROFILE
// }


// Path: src/main/java/com/crozin/wykop/sdk/service/MicroblogService.java
import com.crozin.wykop.sdk.AuthenticatedSession;
import com.crozin.wykop.sdk.Command;
import com.crozin.wykop.sdk.Credential;

package com.crozin.wykop.sdk.service;


public class MicroblogService extends AbstractService {
	public MicroblogService(AuthenticatedSession session) {
		super(session);
	}

	public Integer addEntry(String content) {
		checkCredentials(Credential.MICROBLOG);
		
		Command cmd = new Command("entries", "add");
		cmd.addPostParameter("body", content);

		return Integer.valueOf(session.getMapResult(cmd).get("id"));
	}
	
	public Integer editEntry(Integer id, String content) {