@Override public String getName() { return kieFile.getName(); }
@Override public Iterable<Vfs.File> getFiles() { List<Vfs.File> vfsFileList = new ArrayList<>(); Deque<Resource> resourceDeque = new ArrayDeque<>(); Collection<? extends Resource> mainMembers = kieFolder.getMembers(); if (mainMembers != null) { resourceDeque.addAll(mainMembers); } while (!resourceDeque.isEmpty()) { Resource resource = resourceDeque.pop(); if (resource instanceof File) { File file = (File) resource; if (file.getName().endsWith(".class")) { vfsFileList.add(new ReflectionsKieVfsFile(file)); } } else if (resource instanceof Folder) { Collection<? extends Resource> members = ((Folder) resource).getMembers(); if (members != null) { resourceDeque.addAll(members); } } else { throw new IllegalStateException("Unsupported resource class (" + resource.getClass() + ") for resource (" + resource + ")."); } } return vfsFileList; }
@Test public void testGetEnglishFileName() throws Exception { final File file = memoryFileSystem.getFile( "path/path/File.java" ); assertEquals( "File.java", file.getName() ); }
@Test public void testGetJapaneseFileName() throws Exception { final File file = memoryFileSystem.getFile( "path/path/%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A.java" ); assertEquals( "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A.java", file.getName() ); } }
public void writeFs(MemoryFileSystem mfs, Folder f, java.io.File file1) { for ( Resource rs : f.getMembers() ) { if ( rs instanceof Folder ) { java.io.File file2 = new java.io.File( file1, ((Folder) rs).getName()); file2.mkdir(); writeFs( mfs, (Folder) rs, file2 ); } else { byte[] bytes = mfs.getFileContents( (MemoryFile) rs ); try { IoUtils.write(new java.io.File(file1, ((File) rs).getName()), bytes); } catch ( IOException e ) { fail( "Unable to write project to file system\n" + e.getMessage() ); } } } } }
public void copyFolder(MemoryFileSystem srcMfs, Folder srcFolder, MemoryFileSystem trgMfs, Folder trgFolder, KieModuleModel kproj) { if ( !trgFolder.exists() ) { trgMfs.getFolder( trgFolder.getPath() ).create(); } Collection<Resource> col = (Collection<Resource>) srcFolder.getMembers(); if (col == null) { return; } for ( Resource rs : col ) { if ( rs instanceof Folder ) { copyFolder( srcMfs, (Folder) rs, trgMfs, trgFolder.getFolder( ((Folder) rs).getName() ), kproj ); } else { MemoryFile trgFile = (MemoryFile) trgFolder.getFile( ((File) rs).getName() ); try { trgMfs.setFileContents( trgFile, srcMfs.getFileContents( (MemoryFile) rs ) ); } catch ( IOException e ) { throw new RuntimeException( e ); } } } }