Package org.bukkit.block.data

# Interface Rail

All Superinterfaces:
  `BlockData`, `Cloneable`, `Waterlogged`

All Known Subinterfaces:
  `RedstoneRail`

public interface Rail extends Waterlogged
'shape' represents the current layout of a minecart rail.
Some types of rail may not be able to be laid out in all shapes, use `getShapes()` to get those applicable to this block.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`Rail.Shape`
The different types of shapes a rail block can occupy.

## Method Summary

Modifier and Type
Method
Description
`@NotNull Rail.Shape`
`getShape()`
Gets the value of the 'shape' property.
`@NotNull Set<Rail.Shape>`
`getShapes()`
Gets the shapes which are applicable to this block.
`void`
`setShape(@NotNull Rail.Shape shape)`
Sets the value of the 'shape' property.

### Methods inherited from interface org.bukkit.block.data.BlockData

`clone, getAsString, getAsString, getMaterial, getSoundGroup, isFaceSturdy, isPreferredTool, isRandomlyTicked, isSupported, isSupported, matches, merge`

### Methods inherited from interface org.bukkit.block.data.Waterlogged

`isWaterlogged, setWaterlogged`

## Method Details

### getShape

@NotNull @NotNull Rail.Shape getShape()
Gets the value of the 'shape' property.

Returns:
  the 'shape' value

### setShape

void setShape(@NotNull @NotNull Rail.Shape shape)
Sets the value of the 'shape' property.

Parameters:
  `shape` - the new 'shape' value

### getShapes

@NotNull @NotNull Set<Rail.Shape> getShapes()
Gets the shapes which are applicable to this block.

Returns:
  the allowed 'shape' values