git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Thu, 24 Mar 2022 08:42:29 +0000 (08:42 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Thu, 24 Mar 2022 08:42:29 +0000 (08:42 +0000)
server/user.jobengine.executors/src/user/jobengine/server/steps/ProResArchiveStep.java [new file with mode: 0644]

diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ProResArchiveStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ProResArchiveStep.java
new file mode 100644 (file)
index 0000000..d3fcfaf
--- /dev/null
@@ -0,0 +1,58 @@
+\r
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+import user.jobengine.server.steps.shared.FileSearchFilterOptions;\r
+\r
+public class ProResArchiveStep extends PathItemsCollectorStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+       public static final String DOT_CATCHED = ".catched";\r
+       public static final String STATUSFOLDER = ".STATUS";\r
+\r
+       @Override\r
+       protected FileSearchFilterOptions createFileFilter(BasicDBObject filter) {\r
+               String fileName = filter.getString("fileName").replaceAll("[^a-zA-Z0-9]", "");\r
+\r
+               FileSearchFilterOptions result = new FileSearchFilterOptions(filter) {\r
+                       @Override\r
+                       public boolean acceptFile(Path file) {\r
+                               if (!isMediaCatched(file)) {/* !catched van-e */\r
+                                       return super.acceptFile(file);\r
+                               }\r
+                               return false;\r
+                       }\r
+               };\r
+               return result;\r
+       }\r
+\r
+       @Override\r
+       @StepEntry\r
+       public Object[] execute(String sourceStoreFolder, BasicDBObject filter) throws Exception {\r
+               return super.execute(sourceStoreFolder, filter);\r
+       }\r
+\r
+       /***\r
+        * A média elérési útján alapján a .STATUS almappában vizsgálja .catch fajl\r
+        * létezését.\r
+        *\r
+        * @param mediaFile\r
+        * @return\r
+        */\r
+       public static boolean isMediaCatched(Path mediaFile) {\r
+               Path catchedFile = createMediaCatchFilePath(mediaFile);\r
+               return Files.exists(catchedFile);\r
+       }\r
+\r
+       public static Path createMediaCatchFilePath(Path mediaFile) {\r
+               String fileName = mediaFile.getFileName().toString() + DOT_CATCHED;\r
+               return Paths.get(mediaFile.getParent().toString(), STATUSFOLDER, fileName);\r
+       }\r
+}\r