editsession.java

来自「在线编辑器」· Java 代码 · 共 64 行

JAVA
64
字号
package com.mozilla.bespin;import org.json.simple.JSONObject;import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class EditSession {    private File file;    private UserSession session;    private EditMode editMode;    private List<JSONObject> edits;    private int lastEditBeforeSave = -1;    EditSession(File file, UserSession session, EditMode editMode) {        this.file = file;        this.session = session;        this.editMode = editMode;        if (editMode == EditMode.ReadWrite) edits = new ArrayList<JSONObject>();    }    public UserSession getUser() {        return session;    }    public EditMode getEditMode() {        return editMode;    }    public File getFile() {        return file;    }    public List<JSONObject> getEdits() {        return (edits == null) ? new ArrayList<JSONObject>(0) : new ArrayList<JSONObject>(edits);    }    public List<JSONObject> getEditsSinceLastSave() {        if (edits == null) return new ArrayList<JSONObject>(0);        if (lastEditBeforeSave > edits.size() - 1) throw new IllegalStateException("lastEditBeforeSave set too high!");        if (lastEditBeforeSave == edits.size() - 1) return new ArrayList<JSONObject>(0);        return new ArrayList<JSONObject>(edits.subList(lastEditBeforeSave + 1, edits.size()));    }    public void addEdits(JSONObject... edits) {        if (editMode != EditMode.ReadWrite) throw new IllegalStateException("Edit session is read-only; can't add edits");        this.edits.addAll(Arrays.asList(edits));    }    public void clearEdits() {        if (edits != null) edits.clear();    }    public int getLastEditBeforeSave() {        return lastEditBeforeSave;    }    public void setLastEditBeforeSave(int lastEditBeforeSave) {        this.lastEditBeforeSave = lastEditBeforeSave;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?