Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Riena/Core
{{#eclipseproject:rt.riena}}
Contents
Logging with Log4j
See package org.eclipse.riena.core.logging
.
Accessing files on disk with RienaLocations
The class org.eclipse.riena.core.RienaLocations
with static methods getDataArea()
and getDataArea(Bundle)
should be the single place that manages and knows about where to read/write files on disk.
Always use RienaLocations when you need to read or write application-specific data (e.g. user settings or custom caches) to/from disk.
Caching
See package org.eclipse.riena.core.cache
.
Util classes
All in package org.eclipse.riena.core.util
. See the source files for a complete list of methods and the inline Javadoc for more information.
ArraysUtil
Helper for arrays.
-
public static <T> T[] copyRange(T[] source, int from, int to)
- Copy from the given source array from index from to index to into a newly-created array of the same type with size to - from.
IOUtils
Helper for I/O operations, e.g.
-
public static void copyFile(File from, File to) throws IOException
Iter
This helper provides conversions from classes only implementing Iterator
or Enumeration
such that they can be used within the extended for()-loop (foreach).
All the able()
methods can be used with a null
parameter. So, explicitly checking for null
is not necessary!
Note: All these methods induce a small performance penalty.
String[] strings = null; for (String s : Iter.able(strings)) { ... }
StringTokenizer st = new StringTokenizer("this is a test"); for (String str : Iter.able(st, String.class)) { ... }
Nop
Use this to explicitly document do-nothing behavior, e.g. in empty try-catch clauses:
Nop.reason("do nothing, can happen if some other bundle registered this service");
PropertiesUtils
Helps with converting string representation of maps and lists to their Java counterparts.
ReflectionUtils
Provides static methods that allow a grovvy-like experience for calling methods, setting and getting fields and creating instances. Both on accessible, i.e. public and inaccessible elements. And everything without fiddling around with the reflection API.
URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); URL url = new URL("file:c:\\"); ReflectionUtils.invokeHidden(sysloader, "addURL", url);
StringUtils
Offers static convenience methods like:
-
public static boolean isGiven(final CharSequence sequence)
- the counterpart to
isEmpty(...)
-
public static boolean isEmpty(final CharSequence sequence)
-
public static boolean isDeepEmpty(final String string)
- like isEmpty, with the difference that whitespace-only strings are considered empty.
-
public static boolean equals(final CharSequence sequence1, final CharSequence sequence2)
- null-safe equals
WeakRef
WeakRef simplifies the usage of WeakReferences. It provides a simple API that allows to define a notification callback which gets called when the target object is about to be reclaimed by the garbage collector. This is useful for objects (targets) that do not have a dedicated life cycle but need some sort of finalization action when no longer used.
targetRef = new WeakRef<Object>(target, new Runnable() { public void run() { stop(); } });
To access the target you have to use
object = targetRef.get(); if ( object != null ) { // .. do something }
The null check is required because the target might have gone away.