indeed, I just forgot that we already have that dependency :P moving to guava right now, merci!
-Simo http://people.apache.org/~simonetripodi/ http://simonetripodi.livejournal.com/ http://twitter.com/simonetripodi http://www.99soft.org/ On Fri, Feb 24, 2012 at 4:25 PM, Benoit Perroud <[email protected]> wrote: > Hi Simone, > > I wonder why not using Guava's Preconditions ? Sounds really the same > (checkState, checkArgs, ...) > > Cheers, > > Benoit. > > 2012/2/24 <[email protected]>: >> Author: simonetripodi >> Date: Fri Feb 24 14:51:43 2012 >> New Revision: 1293280 >> >> URL: http://svn.apache.org/viewvc?rev=1293280&view=rev >> Log: >> first checkin of internal stuff >> >> Added: >> >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/ >> >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> (with props) >> >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> (with props) >> >> Added: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> URL: >> http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java?rev=1293280&view=auto >> ============================================================================== >> --- >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> (added) >> +++ >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> Fri Feb 24 14:51:43 2012 >> @@ -0,0 +1,112 @@ >> +package org.apache.directmemory.utils; >> + >> +/* >> + * Licensed to the Apache Software Foundation (ASF) under one or more >> + * contributor license agreements. See the NOTICE file distributed with >> + * this work for additional information regarding copyright ownership. >> + * The ASF licenses this file to You 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. >> + */ >> + >> +import static java.lang.String.format; >> + >> +/** >> + * Code partially extracted from Google Collections >> + */ >> +public final class Assertions >> +{ >> + >> + private Assertions() >> + { >> + // do nothing >> + } >> + >> + /** >> + * Ensures the truth of an expression involving one or more parameters >> to the >> + * calling method. >> + * >> + * @param expression a boolean expression >> + * @param errorMessageTemplate a template for the exception message >> should the >> + * check fail. The message is formed by replacing each {@code %s} >> + * placeholder in the template with an argument. These are matched >> by >> + * position - the first {@code %s} gets {@code >> errorMessageArgs[0]}, etc. >> + * Unmatched arguments will be appended to the formatted message in >> square >> + * braces. Unmatched placeholders will be left as-is. >> + * @param errorMessageArgs the arguments to be substituted into the >> message >> + * template. Arguments are converted to strings using >> + * {@link String#valueOf(Object)}. >> + * @throws IllegalArgumentException if {@code expression} is false >> + * @throws NullPointerException if the check fails and either {@code >> + * errorMessageTemplate} or {@code errorMessageArgs} is null (don't >> let >> + * this happen) >> + */ >> + public static void checkArgument( boolean expression, String >> errorMessageTemplate, Object... errorMessageArgs ) >> + { >> + if ( !expression ) >> + { >> + throw new IllegalArgumentException( format( >> errorMessageTemplate, errorMessageArgs ) ); >> + } >> + } >> + >> + /** >> + * Ensures the truth of an expression involving the state of the calling >> + * instance, but not involving any parameters to the calling method. >> + * >> + * @param expression a boolean expression >> + * @param errorMessageTemplate a template for the exception message >> should the >> + * check fail. The message is formed by replacing each {@code %s} >> + * placeholder in the template with an argument. These are matched >> by >> + * position - the first {@code %s} gets {@code >> errorMessageArgs[0]}, etc. >> + * Unmatched arguments will be appended to the formatted message in >> square >> + * braces. Unmatched placeholders will be left as-is. >> + * @param errorMessageArgs the arguments to be substituted into the >> message template. >> + * @throws IllegalStateException if {@code expression} is false >> + * @throws NullPointerException if the check fails and either {@code >> + * errorMessageTemplate} or {@code errorMessageArgs} is null (don't >> let >> + * this happen) >> + */ >> + public static void checkState( boolean expression, String >> errorMessageTemplate, Object... errorMessageArgs ) >> + { >> + if ( !expression ) >> + { >> + throw new IllegalStateException( format( errorMessageTemplate, >> errorMessageArgs ) ); >> + } >> + } >> + >> + /** >> + * Ensures that an object reference passed as a parameter to the calling >> + * method is not null. >> + * >> + * @param reference an object reference >> + * @param errorMessageTemplate a template for the exception message >> should the >> + * check fail. The message is formed by replacing each {@code %s} >> + * placeholder in the template with an argument. These are matched >> by >> + * position - the first {@code %s} gets {@code >> errorMessageArgs[0]}, etc. >> + * Unmatched arguments will be appended to the formatted message in >> square >> + * braces. Unmatched placeholders will be left as-is. >> + * @param errorMessageArgs the arguments to be substituted into the >> message >> + * template. Arguments are converted to strings using >> + * {@link String#valueOf(Object)}. >> + * @return the non-null reference that was validated >> + * @throws NullPointerException if {@code reference} is null >> + */ >> + public static <T> T checkNotNull( T reference, String >> errorMessageTemplate, Object... errorMessageArgs ) >> + { >> + if ( reference == null ) >> + { >> + // If either of these parameters is null, the right thing >> happens anyway >> + throw new NullPointerException( format( errorMessageTemplate, >> errorMessageArgs ) ); >> + } >> + return reference; >> + } >> + >> +} >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> ------------------------------------------------------------------------------ >> svn:keywords = Date Author Id Revision HeadURL >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> Added: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> URL: >> http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java?rev=1293280&view=auto >> ============================================================================== >> --- >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> (added) >> +++ >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> Fri Feb 24 14:51:43 2012 >> @@ -0,0 +1,25 @@ >> +/** >> + * Various internal use only utility classes. >> + * >> + * Users must not rely on classes in this package. >> + */ >> +package org.apache.directmemory.utils; >> + >> +/* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you 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. >> + */ >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> ------------------------------------------------------------------------------ >> svn:keywords = Date Author Id Revision HeadURL >> >> Propchange: >> incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> > > > > -- > sent from my Nokia 3210
