mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
Consolidate FileUtils from smack-openpgp into smack-core
This commit is contained in:
parent
a00aa726fe
commit
3e65cb31c3
5 changed files with 43 additions and 69 deletions
|
@ -18,7 +18,9 @@ package org.jivesoftware.smack.util;
|
|||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
@ -160,4 +162,38 @@ public final class FileUtils {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static FileOutputStream prepareFileOutputStream(File file) throws IOException {
|
||||
if (!file.exists()) {
|
||||
|
||||
// Create parent directory
|
||||
File parent = file.getParentFile();
|
||||
if (!parent.exists() && !parent.mkdirs()) {
|
||||
throw new IOException("Cannot create directory " + parent.getAbsolutePath());
|
||||
}
|
||||
|
||||
// Create file
|
||||
if (!file.createNewFile()) {
|
||||
throw new IOException("Cannot create file " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
if (file.isDirectory()) {
|
||||
throw new AssertionError("File " + file.getAbsolutePath() + " is not a file!");
|
||||
}
|
||||
|
||||
return new FileOutputStream(file);
|
||||
}
|
||||
|
||||
public static FileInputStream prepareFileInputStream(File file) throws IOException {
|
||||
if (file.exists()) {
|
||||
if (file.isFile()) {
|
||||
return new FileInputStream(file);
|
||||
} else {
|
||||
throw new IOException("File " + file.getAbsolutePath() + " is not a file!");
|
||||
}
|
||||
} else {
|
||||
throw new FileNotFoundException("File " + file.getAbsolutePath() + " not found.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,9 +16,6 @@
|
|||
*/
|
||||
package org.jivesoftware.smackx.ox.store.filebased;
|
||||
|
||||
import static org.jivesoftware.smackx.ox.util.FileUtils.prepareFileInputStream;
|
||||
import static org.jivesoftware.smackx.ox.util.FileUtils.prepareFileOutputStream;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
|
@ -28,6 +25,7 @@ import java.util.Date;
|
|||
import java.util.Map;
|
||||
|
||||
import org.jivesoftware.smack.util.CloseableUtil;
|
||||
import org.jivesoftware.smack.util.FileUtils;
|
||||
import org.jivesoftware.smack.util.Objects;
|
||||
import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore;
|
||||
import org.jivesoftware.smackx.ox.store.definition.OpenPgpKeyStore;
|
||||
|
@ -81,7 +79,7 @@ public class FileBasedOpenPgpKeyStore extends AbstractOpenPgpKeyStore {
|
|||
|
||||
OutputStream outputStream = null;
|
||||
try {
|
||||
outputStream = prepareFileOutputStream(file);
|
||||
outputStream = FileUtils.prepareFileOutputStream(file);
|
||||
publicKeys.encode(outputStream);
|
||||
} finally {
|
||||
CloseableUtil.maybeClose(outputStream, LOGGER);
|
||||
|
@ -104,7 +102,7 @@ public class FileBasedOpenPgpKeyStore extends AbstractOpenPgpKeyStore {
|
|||
|
||||
OutputStream outputStream = null;
|
||||
try {
|
||||
outputStream = prepareFileOutputStream(file);
|
||||
outputStream = FileUtils.prepareFileOutputStream(file);
|
||||
secretKeys.encode(outputStream);
|
||||
} finally {
|
||||
CloseableUtil.maybeClose(outputStream, LOGGER);
|
||||
|
@ -118,7 +116,7 @@ public class FileBasedOpenPgpKeyStore extends AbstractOpenPgpKeyStore {
|
|||
|
||||
FileInputStream inputStream;
|
||||
try {
|
||||
inputStream = prepareFileInputStream(file);
|
||||
inputStream = FileUtils.prepareFileInputStream(file);
|
||||
} catch (FileNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
|
@ -134,7 +132,7 @@ public class FileBasedOpenPgpKeyStore extends AbstractOpenPgpKeyStore {
|
|||
|
||||
FileInputStream inputStream;
|
||||
try {
|
||||
inputStream = prepareFileInputStream(file);
|
||||
inputStream = FileUtils.prepareFileInputStream(file);
|
||||
} catch (FileNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -32,9 +32,9 @@ import java.util.logging.Level;
|
|||
import java.util.logging.Logger;
|
||||
|
||||
import org.jivesoftware.smack.util.CloseableUtil;
|
||||
import org.jivesoftware.smack.util.FileUtils;
|
||||
import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpMetadataStore;
|
||||
import org.jivesoftware.smackx.ox.store.definition.OpenPgpMetadataStore;
|
||||
import org.jivesoftware.smackx.ox.util.FileUtils;
|
||||
import org.jivesoftware.smackx.ox.util.Util;
|
||||
|
||||
import org.jxmpp.jid.BareJid;
|
||||
|
|
|
@ -29,9 +29,9 @@ import java.util.logging.Level;
|
|||
import java.util.logging.Logger;
|
||||
|
||||
import org.jivesoftware.smack.util.CloseableUtil;
|
||||
import org.jivesoftware.smack.util.FileUtils;
|
||||
import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpTrustStore;
|
||||
import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore;
|
||||
import org.jivesoftware.smackx.ox.util.FileUtils;
|
||||
import org.jivesoftware.smackx.ox.util.Util;
|
||||
|
||||
import org.jxmpp.jid.BareJid;
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
/**
|
||||
*
|
||||
* Copyright 2017 Florian Schmaus, 2018 Paul Schaub.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jivesoftware.smackx.ox.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class FileUtils {
|
||||
|
||||
public static FileOutputStream prepareFileOutputStream(File file) throws IOException {
|
||||
if (!file.exists()) {
|
||||
|
||||
// Create parent directory
|
||||
File parent = file.getParentFile();
|
||||
if (!parent.exists() && !parent.mkdirs()) {
|
||||
throw new IOException("Cannot create directory " + parent.getAbsolutePath());
|
||||
}
|
||||
|
||||
// Create file
|
||||
if (!file.createNewFile()) {
|
||||
throw new IOException("Cannot create file " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
if (file.isDirectory()) {
|
||||
throw new AssertionError("File " + file.getAbsolutePath() + " is not a file!");
|
||||
}
|
||||
|
||||
return new FileOutputStream(file);
|
||||
}
|
||||
|
||||
public static FileInputStream prepareFileInputStream(File file) throws IOException {
|
||||
if (file.exists()) {
|
||||
if (file.isFile()) {
|
||||
return new FileInputStream(file);
|
||||
} else {
|
||||
throw new IOException("File " + file.getAbsolutePath() + " is not a file!");
|
||||
}
|
||||
} else {
|
||||
throw new FileNotFoundException("File " + file.getAbsolutePath() + " not found.");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue