org.kawanfw.file.api.util.client.CallerFinder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of awake-file-server Show documentation
Show all versions of awake-file-server Show documentation
Awake FILE is a secure Open Source framework that allows to program very easily file uploads/downloads and RPC through http. File transfers include
powerful features like file chunking and automatic recovery mechanism.
Security has been taken into account from the design: server side allows
to specify strong security rules in order to protect the files and to secure the RPC calls.
The newest version!
/*
* This file is part of Awake FILE.
* Awake file: Easy file upload & download over HTTP with Java.
* Copyright (C) 2015, KawanSoft SAS
* (http://www.kawansoft.com). All rights reserved.
*
* Awake FILE is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Awake FILE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Any modifications to this file must keep this entire header
* intact.
*/
package org.kawanfw.file.api.util.client;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import org.kawanfw.commons.util.ClientLogger;
import org.kawanfw.commons.util.FrameworkDebug;
/**
* getCallerCallerClassName() :
* Tribute to: http://stackoverflow.com/users/263525/dystroy in:
* http://stackoverflow.com/questions/11306811/how-to-get-the-caller-class-in-java
*
*
*/
public class CallerFinder {
/** For debug info */
private static boolean DEBUG = FrameworkDebug.isSet(CallerFinder.class);
/**
* Proctected constructor
*/
protected CallerFinder() {
}
/**
* Allows to find the name of the class that calls this method
*
* @return the name of the class that calls ths method
*/
public static String getCallerCallerClassName() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
String callerClassName = null;
for (int i = 1; i < stElements.length; i++) {
StackTraceElement ste = stElements[i];
if (!ste.getClassName().equals(CallerFinder.class.getName())
&& ste.getClassName().indexOf("java.lang.Thread") != 0) {
if (callerClassName == null) {
callerClassName = ste.getClassName();
} else if (!callerClassName.equals(ste.getClassName())) {
return ste.getClassName();
}
}
}
return null;
}
/**
* Returns the stack of the classes that called this method
*
* @return the stack of the classes that called this method
*/
public static List getCallStack() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
String callerClassName = null;
List stack = new ArrayList();
for (int i = 1; i < stElements.length; i++) {
StackTraceElement ste = stElements[i];
callerClassName = ste.getClassName();
debug("callerClassName: " + callerClassName);
stack.add(callerClassName);
}
return stack;
}
/**
* debug tool
*/
private static void debug(String s) {
if (DEBUG) {
ClientLogger.getLogger().log(Level.WARNING, s);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy