|
Java example source code file (KeywordLookupSite.java)
The KeywordLookupSite.java Java example source code/** * Copyright (c) Rich Hickey. All rights reserved. * The use and distribution terms for this software are covered by the * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) * which can be found in the file epl-v10.html at the root of this distribution. * By using this software in any fashion, you are agreeing to be bound by * the terms of this license. * You must not remove this notice, or any other, from this software. **/ /* rich Nov 2, 2009 */ package clojure.lang; public final class KeywordLookupSite implements ILookupSite, ILookupThunk{ final Keyword k; public KeywordLookupSite(Keyword k){ this.k = k; } public ILookupThunk fault(Object target){ if(target instanceof IKeywordLookup) { return install(target); } else if(target instanceof ILookup) { return ilookupThunk(target.getClass()); } return this; } public Object get(Object target){ if(target instanceof IKeywordLookup || target instanceof ILookup) return this; return RT.get(target,k); } private ILookupThunk ilookupThunk(final Class c){ return new ILookupThunk(){ public Object get(Object target){ if(target != null && target.getClass() == c) return ((ILookup) target).valAt(k); return this; } }; } private ILookupThunk install(Object target){ ILookupThunk t = ((IKeywordLookup)target).getLookupThunk(k); if(t != null) return t; return ilookupThunk(target.getClass()); } } Other Java examples (source code examples)Here is a short list of links related to this Java KeywordLookupSite.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.