1 package org.csc.phynixx.tutorial; 2 3 /* 4 * #%L 5 * phynixx-tutorial 6 * %% 7 * Copyright (C) 2014 Christoph Schmidt-Casdorff 8 * %% 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * #L% 21 */ 22 23 24 import org.csc.phynixx.connection.RequiresTransaction; 25 26 import java.io.IOException; 27 import java.util.List; 28 29 /** 30 * Created by Christoph Schmidt-Casdorff on 04.02.14. 31 */ 32 public interface UTFWriter{ 33 34 /** 35 * 36 * @return lockToken you need to identify the unlock 37 */ 38 String lock() throws InterruptedException; 39 40 void unlock(String lockToken); 41 42 boolean isClosed(); 43 44 /** 45 * resets the content of the file associated with die current transaction 46 * @throws IOException 47 */ 48 @RequiresTransaction 49 void resetContent() throws IOException; 50 51 /**writes a string to file 52 * 53 * @param value 54 * @return 55 * @throws IOException 56 */ 57 @RequiresTransaction 58 long write(String value) throws IOException; 59 60 void close(); 61 62 @RequiresTransaction 63 /** 64 * opens a file and associates it with the current transaction 65 */ 66 String getFilename() throws IOException; 67 68 69 /** 70 * reads the content 71 * @return 72 */ 73 List<String> readContent() throws IOException; 74 75 long size() throws IOException; 76 77 void restoreSize(long filePosition) throws IOException; 78 79 long position() throws IOException; 80 }