/** * Returns a list of boolean columns suitable for use as dummy variables in, for example, regression analysis, * select a column of categorical data must be encoded as a list of columns, such that each column represents * a single category and indicates whether it is present (1) or not present (0) * * @return a list of {@link BooleanColumn} */ @Override public List<BooleanColumn> getDummies() { List<BooleanColumn> results = new ArrayList<>(); // createFromCsv the necessary columns for (Byte2ObjectMap.Entry<String> entry : keyToValueMap().byte2ObjectEntrySet()) { BooleanColumn column = BooleanColumn.create(entry.getValue()); results.add(column); } // iterate over the values, updating the dummy variable columns as appropriate for (byte next : values) { String category = getValueForKey(next); for (BooleanColumn column : results) { if (category.equals(column.name())) { //TODO(lwhite): update the correct row more efficiently, by using set rather than add & only // updating true column.append(true); } else { column.append(false); } } } return results; }
/** * Returns a list of boolean columns suitable for use as dummy variables in, for example, regression analysis, * select a column of categorical data must be encoded as a list of columns, such that each column represents * a single category and indicates whether it is present (1) or not present (0) * * @return a list of {@link BooleanColumn} */ @Override public List<BooleanColumn> getDummies() { List<BooleanColumn> results = new ArrayList<>(); // createFromCsv the necessary columns for (Byte2ObjectMap.Entry<String> entry : keyToValueMap().byte2ObjectEntrySet()) { BooleanColumn column = BooleanColumn.create(entry.getValue()); results.add(column); } // iterate over the values, updating the dummy variable columns as appropriate for (byte next : values) { String category = getValueForKey(next); for (BooleanColumn column : results) { if (category.equals(column.name())) { //TODO(lwhite): update the correct row more efficiently, by using set rather than add & only // updating true column.append(true); } else { column.append(false); } } } return results; }
/** * Update effects (look if we can remove some) * * @param currentTimeMillis time when the tick started * @param dT difference time for a full second */ public void update( long currentTimeMillis, float dT ) { if ( !this.effects.isEmpty() ) { ByteSet removeEffects = null; for ( Byte2ObjectMap.Entry<Effect> entry : this.effects.byte2ObjectEntrySet() ) { if ( currentTimeMillis >= entry.getValue().getRunoutTimer() ) { if ( removeEffects == null ) { removeEffects = new ByteOpenHashSet(); } removeEffects.add( entry.getByteKey() ); } else { entry.getValue().update( currentTimeMillis, dT ); } } if ( removeEffects != null ) { for ( Byte removeEffect : removeEffects ) { removeEffect( removeEffect ); } } } }
@Override public String toString() { final StringBuilder s = new StringBuilder(); final ObjectIterator<Byte2ObjectMap.Entry<V>> i = Byte2ObjectMaps.fastIterator(this); int n = size(); Byte2ObjectMap.Entry<V> e; boolean first = true; s.append("{"); while (n-- != 0) { if (first) first = false; else s.append(", "); e = i.next(); s.append(String.valueOf(e.getByteKey())); s.append("=>"); if (this == e.getValue()) s.append("(this map)"); else s.append(String.valueOf(e.getValue())); } s.append("}"); return s.toString(); } }
/** {@inheritDoc} */ @SuppressWarnings({"unchecked", "deprecation"}) @Override public void putAll(final Map<? extends Byte, ? extends V> m) { if (m instanceof Byte2ObjectMap) { ObjectIterator<Byte2ObjectMap.Entry<V>> i = Byte2ObjectMaps.fastIterator((Byte2ObjectMap<V>) m); while (i.hasNext()) { final Byte2ObjectMap.Entry<? extends V> e = i.next(); put(e.getByteKey(), e.getValue()); } } else { int n = m.size(); final Iterator<? extends Map.Entry<? extends Byte, ? extends V>> i = m.entrySet().iterator(); Map.Entry<? extends Byte, ? extends V> e; while (n-- != 0) { e = i.next(); put(e.getKey(), e.getValue()); } } } /**
/** * Remove all active effects */ public void removeAll() { ByteSet removeEffects = null; for ( Byte2ObjectMap.Entry<Effect> entry : this.effects.byte2ObjectEntrySet() ) { if ( removeEffects == null ) { removeEffects = new ByteOpenHashSet(); } removeEffects.add( entry.getByteKey() ); } if ( removeEffects != null ) { for ( Byte removeEffect : removeEffects ) { removeEffect( removeEffect ); } } }
@SuppressWarnings("unchecked") @Override public boolean remove(final Object o) { if (!(o instanceof Map.Entry)) return false; if (o instanceof Byte2ObjectMap.Entry) { final Byte2ObjectMap.Entry<V> e = (Byte2ObjectMap.Entry<V>) o; return map.remove(e.getByteKey(), e.getValue()); } Map.Entry<?, ?> e = (Map.Entry<?, ?>) o; final Object key = e.getKey(); if (key == null || !(key instanceof Byte)) return false; final byte k = ((Byte) (key)).byteValue(); final Object v = e.getValue(); return map.remove(k, v); } @Override
@SuppressWarnings("unchecked") @Override public boolean contains(final Object o) { if (!(o instanceof Map.Entry)) return false; if (o instanceof Byte2ObjectMap.Entry) { final Byte2ObjectMap.Entry<V> e = (Byte2ObjectMap.Entry<V>) o; final byte k = e.getByteKey(); return map.containsKey(k) && java.util.Objects.equals(map.get(k), e.getValue()); } final Map.Entry<?, ?> e = (Map.Entry<?, ?>) o; final Object key = e.getKey(); if (key == null || !(key instanceof Byte)) return false; final byte k = ((Byte) (key)).byteValue(); final Object value = e.getValue(); return map.containsKey(k) && java.util.Objects.equals(map.get(k), (value)); } @SuppressWarnings("unchecked")
@SuppressWarnings("unchecked") @Override public boolean equals(final Object o) { if (!(o instanceof Map.Entry)) return false; if (o instanceof Byte2ObjectMap.Entry) { final Byte2ObjectMap.Entry<V> e = (Byte2ObjectMap.Entry<V>) o; return ((key) == (e.getByteKey())) && java.util.Objects.equals(value, e.getValue()); } final Map.Entry<?, ?> e = (Map.Entry<?, ?>) o; final Object key = e.getKey(); if (key == null || !(key instanceof Byte)) return false; final Object value = e.getValue(); return ((this.key) == (((Byte) (key)).byteValue())) && java.util.Objects.equals(this.value, (value)); } @Override
public void sendForPlayer( EntityPlayer player ) { for ( Byte2ObjectMap.Entry<Effect> entry : this.effects.byte2ObjectEntrySet() ) { if ( entry.getValue().isVisible() ) { PacketMobEffect mobEffect = new PacketMobEffect(); mobEffect.setEntityId( this.living.getEntityId() ); mobEffect.setAction( PacketMobEffect.EVENT_ADD ); mobEffect.setEffectId( entry.getByteKey() ); mobEffect.setAmplifier( entry.getValue().getAmplifier() ); mobEffect.setVisible( entry.getValue().isVisible() ); mobEffect.setDuration( MathUtils.fastFloor( ( entry.getValue().getRunoutTimer() - this.server.getCurrentTickTime() ) / 50f ) ); player.getConnection().addToSendQueue( mobEffect ); } } }
public void persistToNBT( NBTTagCompound compound ) { List<NBTTagCompound> nbtEffects = new ArrayList<>(); for ( Byte2ObjectMap.Entry<Effect> entry : this.effects.byte2ObjectEntrySet() ) { NBTTagCompound effect = new NBTTagCompound( "" ); effect.addValue( "Amplifier", (byte) entry.getValue().getAmplifier() ); effect.addValue( "Duration", (int) ( entry.getValue().getRunoutTimer() - this.server.getCurrentTickTime() ) / 50 ); effect.addValue( "Id", entry.getByteKey() ); effect.addValue( "ShowParticles", (byte) ( entry.getValue().isVisible() ? 1 : 0 ) ); nbtEffects.add( effect ); } compound.addValue( "ActiveEffects", nbtEffects ); }
/** * Serializes this metadata container into the specified buffer. * * @param buffer The buffer to serialize this metadata container into */ public void serialize( PacketBuffer buffer ) { buffer.writeUnsignedVarInt( this.entries.size() ); for ( Byte2ObjectMap.Entry<MetadataValue> entry : this.entries.byte2ObjectEntrySet() ) { entry.getValue().serialize( buffer, entry.getByteKey() ); } }
@Override public V next() { return i.next().getValue(); }; @Override
/** * {@inheritDoc} * * @deprecated Please use the corresponding type-specific method instead. */ @Deprecated @Override default Byte getKey() { return Byte.valueOf(getByteKey()); } }
@Override public byte previousByte() { return i.previous().getByteKey(); }; @Override
@Override public byte nextByte() { return i.next().getByteKey(); }; @Override
@Override public boolean containsKey(final byte k) { final ObjectIterator<Byte2ObjectMap.Entry<V>> i = byte2ObjectEntrySet().iterator(); while (i.hasNext()) if (i.next().getByteKey() == k) return true; return false; } @Override